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.
Réponses
Trop de publicités?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; }
}
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; }
}
é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;
)