59 votes

Qu'est-ce que la propriété set interne en c# ?

Je viens de tomber sur un concept inconnu de c# pour moi. Quelqu'un peut-il me dire à quoi sert une propriété set interne? Quelle est son utilisation ? Je sais que le mot-clé interne est utilisé pour travailler au sein d'un assemblage.

16voto

Isaac Overacker Points 435

Supposons que vous concevez une API à utiliser par d'autres programmeurs. Dans cette API, vous avez un objet Foo qui a une propriété Bar . Vous ne voulez pas que les autres programmeurs définissent la valeur de Bar lorsqu'ils référencent votre assembly, mais vous devez définir la valeur vous-même à partir de votre API. Déclarez simplement la propriété comme telle :

 public class Foo
{
   public string Bar { get; internal set; }
}

10voto

sharp_net Points 616

Propriétés en C# 2.0

En C# 2.0, vous pouvez définir l'accessibilité de get et set.

Le code ci-dessous montre comment créer une variable privée avec un ensemble interne et un get public. La propriété Hour ne peut désormais être définie qu'à partir du code dans le même module (dll), mais est accessible par tout le code qui utilise le module (dll) qui contient la classe.

 // private member variables
private int hour;

// create a property
public int Hour
{
  get { return hour; }
  internal set { hour = value; }
}

4voto

RoccoC5 Points 3477

Si un paramètre de propriété est marqué avec le modificateur d'accès interne, seules les classes qui résident dans l'assembly peuvent définir la propriété.

 public string MyProperty { get; internal set; }

4voto

yas4891 Points 2790

étant donné une propriété déclarée public string MyString {get; internal set;} cela signifie que

  • vous pouvez lire la valeur de la propriété de n'importe où dans votre application ( public string MyString )
  • mais vous ne pouvez écrire une nouvelle valeur dans la propriété que depuis l' intérieur de l'assembly dans lequel elle est déclarée - ou depuis des assemblys amis. ( internal set; )

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X