Exemple de partage de code du mot-clé c#ref

黄舟
Libérer: 2017-03-20 13:28:06
original
1326 Les gens l'ont consulté

Référence du langage C#

ref (Référence C#) Le mot-clé

ref entraîne le passage des paramètres par référence. L'effet est que toute modification apportée aux paramètres de la méthode sera reflétée dans la variable lorsque le contrôle sera rendu à la méthode appelante. Pour utiliser les paramètres ref, la définition de la méthode et l'appel de la méthode doivent utiliser explicitement le mot-clé ref. Par exemple :

Copier le code

class RefExample
{
    static void Method(ref int i)
    {
        i = 44;
    }
    static void Main()
    {
        int val = 0;
        Method(ref val);
        // val is now 44
    }
}
Copier après la connexion

Les paramètres passés au paramètre ref doivent être initialisés en premier. Ceci est différent de out , dont les paramètres n'ont pas besoin d'être explicitement initialisés avant d'être transmis. (Voir out.)

Bien que ref et out soient gérés différemment au moment de l'exécution, ils sont gérés de la même manière au moment de la compilation. Par conséquent, si une méthode prend un paramètre ref et qu’une autre méthode prend un paramètre out, les deux méthodes ne peuvent pas être surchargées. Par exemple, du point de vue de la compilation, les deux méthodes dans le code suivant sont exactement les mêmes, donc le code suivant ne sera pas compilé :

Copier le code

class CS0663_Example 
{
    // compiler error CS0663: "cannot define overloaded 
    // methods that differ only on ref and out"
    public void SampleMethod(ref int i) {  }
    public void SampleMethod(out int i) {  }
}
Copier après la connexion

Cependant, si l'on une méthode prend des paramètres ref ou out, et une autre méthode ne prend pas ces deux types de paramètres, elle peut être surchargée, comme indiqué ci-dessous :

Copier le code

class RefOutOverloadExample
{
    public void SampleMethod(int i) {  }
    public void SampleMethod(ref int i) {  }
}
Copier après la connexion

Remarques

Les propriétés ne sont pas des variables et ne peuvent donc pas être transmises comme paramètres de référence.

Pour plus d'informations sur la transmission de tableaux, voir

Passer des tableaux à l'aide de ref et out.

Exemple

Le passage de types de valeur par référence (illustré ci-dessus) est utile, mais ref est également utile pour passer des types de référence. Cela permet à la méthode appelée de modifier l'objet référencé par la référence, puisque la référence elle-même est passée par référence. L'exemple suivant montre que lorsqu'un type référence est passé en tant que paramètre ref, l'objet lui-même peut être modifié.

class RefRefExample
{
    static void Method(ref string s)
    {
        s = "changed";
    }
    static void Main()
    {
        string str = "original";
        Method(ref str);
        // str is now "changed"
    }
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!