c# Static de la Classe de la Propriété
Un exemple a été montré pour moi aujourd'hui, et je voulais juste vérifier si les deux conditions suivantes seront en fait avoir le même effet, et il n'est pas, quelle est la différence entre eux.
Est-ce:
private static Service1Client _myFoo;
static ServiceLayer()
{
MyFoo = new Service1Client();
}
public static Service1Client MyFoo
{
get { return _myFoo; }
set { _myFoo = value; }
}
Juste un de longue haleine façon de faire:
public static Service1Client _myFoo
{
get { return _myFoo; }
set { _myFoo = value; }
}
static ServiceLayer()
{
_myFoo = new Service1Client();
}
Si ce n'est pas le cas, quelle est la différence entre eux?
Grâce.
Vous avez la récursivité dans la propriété
_myFoo
dans le deuxième exemple.OriginalL'auteur EverythingGeek | 2013-01-24
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de la sauvegarde de champ parce que:
....comme vous avez dans votre exemple de boucle pour toujours.
Cependant, C# n'automatique des propriétés. Vous pourriez faire la même chose avec ce simple code:
OriginalL'auteur itsme86
Presque, mais non. Dans votre propriété, vous ne pouvez pas retourner l'objet que vous êtes l'obtention et la configuration. Vous avez besoin d'un champ de stockage.
Dans ce cas, puisque vous êtes seulement faire une base get et set, vous pouvez utiliser une propriété automatique. C'est l'équivalent du code ci-dessus.
OriginalL'auteur Dave Zych
Étant donné ce code:
Vous obtiendrez un
StackOverflowExcpetion
chaque fois que vous utilisez le getter et le setter parce que le compositeur s'appelle elle-même, qui va s'appeler lui-même, etc (jusqu'à ce que vous manquez d'espace de pile).Une façon de réussir à les raccourcir le premier exemple serait:
StackOverflowExcpetion
chaque fois que vous utilisez le getter et le setter Juste pour être pendantic: Si vous construisez en mode Release, vous n'aurez pas [toujours?] obtenir un débordement de pile, "juste" une boucle infinie. C'est probablement à cause de certains de queue appel d'élimination ou similaire optimisation.OriginalL'auteur Servy