`[RelayCommand]` does not work with default/optional arguments as the command parameter
还没有人认领这个 Issue。
评估
调研方向
从 CommunityToolkit.Mvvm 中的 [RelayCommand] 生成和分析器路径入手,然后复现带有可选 bool 和默认 CancellationToken 的报告命令。确认生成的命令是否能够处理可选参数;当命令能够正确分派,或分析器针对不支持的可选参数报告明确的编译器错误时,即表示完成。
由索引模型根据 Issue 内容生成。
描述
Describe the bug
The following command compiles, but causes a runtime error when called.
public override async Task SomeCommandAsync(bool optional = false, CancellationToken cancellationToken = default)
{
}
The same command without the first optional argument does work, i.e. the optional CancellationToken is handled correctly, as far as I can tell.
If it isn't possible to dispatch the command with that default/optional argument, then the analyzer should probably produce a compiler error notifying the user that RelayCommands cannot have optional arguments.
Regression
No response
Steps to reproduce
- Paste the code above into a class inside a project that references the CommunityToolkit
- Run the application
Expected behavior
Either pass in the provided value or the default or generate a compiler error to notify the user that commands cannot have optional arguments.
Screenshots
No response
IDE and version
VS 2022
IDE version
No response
Nuget packages
- CommunityToolkit.Common
- CommunityToolkit.Diagnostics
- CommunityToolkit.HighPerformance
- CommunityToolkit.Mvvm (aka MVVM Toolkit)
Nuget package version(s)
CommunityToolkit.Mvvm 8.4.0
Additional context
No response
Help us help you
No, just wanted to report this
- 主要语言
- C#
- 星标
- 3.8k
- 派生
- 402
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
CommunityToolkit/dotnet 的其他 Issue
-
RelayCommand<T>.CanExecute(null) returns false for value types without a predicate可能已有人在做 @apachezy 于 96 天前认领。 未关闭bug :bug:
难度 2/5 1-3 小时 新手友好度 84/100
CommunityToolkit/dotnet#1206 ·
-
难度 2/5 1-3 小时 新手友好度 65/100
CommunityToolkit/dotnet#1186 ·
-
bug :bug:
难度 1/5 1 小时以内 新手友好度 68/100
CommunityToolkit/dotnet#648 ·
-
难度 5/5 一周以上 新手友好度 35/100
CommunityToolkit/dotnet#1217 ·
-
bug :bug:
难度 3/5 1-2 天 新手友好度 68/100
CommunityToolkit/dotnet#1215 · 2 条评论 ·
查看 CommunityToolkit/dotnet 的全部 Issue
相似的 Issue
-
possible bug
难度 2/5 1-3 小时 新手友好度 74/100
-
Include host.wslc.internal in the HTTPS development certificate可能已有人在做 @afscrome 今天认领。 未关闭area-commandlinetools
难度 2/5 1-3 小时 新手友好度 70/100
dotnet/aspnetcore#70122 · 1 条评论 ·
维护者通常 1 天内回复
-
:1st_place_medal: good first issue :cowboy_hat_face: refactor :roller_coaster: enhancement
难度 2/5 1-3 小时 新手友好度 68/100
ApplETS/Backend-Hello#78 ·
-
难度 2/5 1-3 小时 新手友好度 74/100
维护者通常 2 天内回复
-
status/triage
难度 2/5 1-3 小时 新手友好度 85/100
Altinn/altinn-studio#21642 ·
维护者通常 1 天内回复