static void Main(string[] arts)
Int X=5;
Change number(ref X);
Console.WriteLine(X);
Console.ReadKey();
static void ChangeNumber(ref int y)
y=0;
// No return statement
This program works, it's output is 0. My question is :: Why does the method return a value(y), when it actually doesn't have a return statement, since it's even a void method.
4 Réponses :
La méthode à la place, votre exemple accepte. Un paramètre Changenumber () code> fait pas strong> retourne une valeur, comme vous dites. Pour renvoyer une valeur, nous devons utiliser le mot-clé code> renvoyer CODE> et attribuer la valeur renvoyée à une variable au point de l'appel de la fonction:
La méthode ne "retourne" pas une valeur. Au lieu de cela, le paramètre est devenu modifié et à cause de l'utilisation du ref mot-clé qui change est reflété dans la variable d'origine: p>
Lorsqu'il est utilisé dans la liste des paramètres d'une méthode, le mot clé ref indique que Un argument est adopté par référence, pas par la valeur. Le mot clé ref rend le paramètre formel un alias pour l'argument, qui doit être un variable. En d'autres termes, toute opération sur le paramètre est faite sur l'argument. Par exemple, si l'appelant passe une variable locale expression ou une expression d'accès au tableau et l'appelé la méthode remplace l'objet auquel le paramètre REF se réfère, puis le la variable locale de l'appelant ou l'élément de tableau fait maintenant référence à la nouvelle objet lorsque la méthode revient. p> blockQuote>
Ceci est connu sous le nom de "transmission d'un argument par référence". Sans le mot-clé
ref code>, seule la variable locale serait modifiée dans la méthode et la variable d'origine resterait inchangée. P>
Si vous posez des questions sur le message «The Programm étant sorti par le code de retour 0», veuillez lire ce Documentation sur les valeurs de retour de la méthode principale , le renvoi Si la valeur de retour de MAIN n'est pas utilisée, le void de retour permet un code légèrement plus simple. Cependant, le retour d'un entier permet au programme de communiquer des informations sur l'état à d'autres programmes ou scripts qui invoquent le fichier exécutable. 0 code> 0 code> est une valeur implicite: p>
La méthode ne renvoie aucune valeur, sa mise à jour essentiellement du paramètre Je vous suggérerais de passer à travers cet article une fois. P>
https://docs.microsoft.com / FR-US / DOTNET / CSHARP / Langue-Référence / Mots-clés / Ref P> ref code> si vous le modifiez à l'intérieur de la méthode. P>
Pour une référence future, assurez-vous que le code que vous publiez ici réellement compile et fonctionne. Votre exemple de code actuel a de nombreuses erreurs de syntaxe afin que cela ne fonctionne même pas. Ces types d'erreurs rendent souvent difficiles à répondre aux questions.
Parce que vous avez utilisé Ref dans votre entrée qui manipule votre variable de référence!
Veuillez lire ce message sur la logique Réf docs.microsoft.com/en-us/dotnet/cshaarp/language-reference/.../a>