Comme ci-dessous le code exprimé, je veux SomeMethodEst-il possible qu'un paramètre de méthode C# d'une sorte d'int peut accepter nulle et peut mettre à jour l'argument
- ont un paramètre d'une sorte de int
- peut accepter null comme paramètre
si le paramètre est pas nul, il utilisera sa valeur, puis mettez à jour la valeur de la variable argument appel2
void Caller1() { SomeMethod(null, ...); } void Caller2() { int argument = 123; SomeMethod(argument, ...); Debug.Assert(argument == 456); } void SomeMethod(SomeKindOfInt parameter, ...) { if (parameter != null) { // use the value of parameter; parameter = 456; // update the value of argument which is in Caller2 } }
Essayé et déclare:
- ref int ne peut pas accepter null
- int? Impossible de mettre à jour l'argument dans l'appelant
- Créer une classe Wrapper personnalisée de int l'a fait, mais existe-t-il un moyen léger ou est-ce que C# ou.
- Il n'est pas bon de le diviser en deux méthodes parce qu'il y a une grosse logique à l'intérieur qui est commune chaque fois que le paramètre est nul ou nul.
Pourquoi ne pas utiliser une valeur de retour dans votre méthode? – Jehof
Que diriez-vous de 'ref int?'? – dotctor
@ Jehof, Merci, int? paramètre et avec la valeur de retour résoudre mon problème – zhiyazw