Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

`[RelayCommand]` does not work with default/optional arguments as the command parameter

Abierto
#1,088 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
csharp
Área
tooling

Línea de trabajo

Comienza por las rutas de generación y del analizador de [RelayCommand] en CommunityToolkit.Mvvm y, después, reproduce el comando informado con un bool opcional y un CancellationToken predeterminado. Confirma si el comando generado puede manejar el argumento opcional; se considera terminado cuando el comando se despacha correctamente o el analizador informa de un error claro del compilador para argumentos opcionales no compatibles.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug :bug:
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
  1. Paste the code above into a class inside a project that references the CommunityToolkit
  2. 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

Lenguaje dominante
C#
Estrellas
3.8k
Forks
401
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de CommunityToolkit/dotnet

Todos los issues de CommunityToolkit/dotnet

Issues similares

Más issues de C#

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.