Mot Clé Protected C#
Je veux savoir quel est le sens de protected
en C#, pourquoi nous les utilisons, et l'avantage de la clé?
Par exemple
protected int currentColorIndex;
Veuillez préciser.
Se sent juste comme il être un doublon, mais je ne trouve pas exactement la même question ailleurs sur.
Maintenant que vous avez les bases vers le bas à partir de ces réponses, vous pouvez plonger dans l'une des nombreuses subtilités. Voir blogs.msdn.com/b/ericlippert/archive/tags/protected pour certains d'entre eux.
connexes: stackoverflow.com/questions/3500298/...
Maintenant que vous avez les bases vers le bas à partir de ces réponses, vous pouvez plonger dans l'une des nombreuses subtilités. Voir blogs.msdn.com/b/ericlippert/archive/tags/protected pour certains d'entre eux.
connexes: stackoverflow.com/questions/3500298/...
OriginalL'auteur Nishant Kumar | 2010-09-02
Vous devez vous connecter pour publier un commentaire.
voir
http://msdn.microsoft.com/en-us/library/bcd5672a(SV.71).aspx
mais monsieur au lieu de déclarer protégé, on peut également utiliser en tant que privé selon votre réponse .
pas tellement: 'privé' contraint les membres à être utilisés uniquement par cette classe, et n'est pas visible de toute autre classe.
C'est exact, je devrais avoir déclaré la différence entre privé et protégé (@Steve Townsend a). protégé masquer l' ,e,eber des clients mais le fait qu'il est encore visible dans les sous-classes.
OriginalL'auteur Andreas Paulsson
Tout le monde de réponse est similaire (une définition et/ou d'un extrait du texte/lien MSDN), si mal tenter de répondre à tes 3 questions originales:
Le Sens:
Un champ marqué avec de "protégés" signifie qu'il n'est visible que pour lui-même et pour tous les enfants (les classes qui héritent de celui-ci). Vous remarquerez dans le ASP.NET code Web Forms derrière le modèle, les gestionnaires d'événements (tels que Page_Load) sont marqués "protégé". C'est parce que le ASPX fichier de marquage en fait hérite à partir du fichier code-behind (regardez la directive @Page pour le prouver).
Pourquoi Nous Les Utilisons:
L'usage commun de la protection de l'accessibilité modificateur est de donner aux enfants l'accès à ses parents propriétés. Vous pourriez avoir une classe de base pour laquelle de nombreuses sous-classes dérivent. Cette classe de base peut avoir une propriété commune. C'est une bonne affaire pour un bien protégé - pour faciliter la réutilisation et la maintenance centrale de la logique commune.
L'Avantage:
Genre de question similaire à "pourquoi nous?" Mais, essentiellement, il donne de gros grains de contrôle sur propriétés. Vous ne pouvez pas il suffit de penser "lorsque vous utilisez protégé". C'est plus une affaire de choix quand à l'utilisation d'accessibilité qui modificateur (public, privé, interne, protégé). L'avantage est donc vraiment le même avantage de l'accessibilité modificateur - de fournir une solide et cohérente de l'objet modèle, la maximisation de code de la réutilisation et de minimiser les risques de sécurité associés avec mal exposée code.
Espère que ça aide.
protected void WalkingAndRunning()
méthode. Le "Papa" de la classe est héritée par les "Fils" de la classe. Est-il possible d'utiliser leprotected void WalkingAndRunning()
méthode? Juste curieux.OriginalL'auteur RPM1984
Comme d'autres l'ont déjà souligné:
Voici un petit exemple:
merci pour claire et bonne explication sir
Vous êtes les bienvenus.
Merci pour cette. Pouvez-vous préciser si
b.SomeString
est valide ou pas? C'est la partie qui n'est pas expliqué sur le site MSDN.n'est pas valide car il est
protected
.protected
en fait signifie simplementprivate
mais avec l'exception que d'hériter de classes peuvent y accéder (comme unprivate
variable).OriginalL'auteur Klaus Byskov Pedersen
Directement à partir de la MSDN:
Source
À l'aide protégé signifie que vous pouvez avoir des fonctionnalités à une classe qui est à la disposition des classes dérivées, mais pas pour les classes il vous suffit d'instancier l'objet.
Cette page compare les différents modificateurs d'accès et explique ce qu'ils signifient et donne un tableau de la valeur par défaut des modificateurs pour les différents objets (enum, classe, interface et struct).
OriginalL'auteur ChrisF
Définition fournie dans une autre réponse. Pourquoi est-ce bon? Vous n'avez pas de dupliquer les données/code de la classe de base de ses classes dérivées lorsque
protected
leur offre l'accès à la base les implémentations de la classe, sans les indésirables de l'exposition à la libre utilisation externe qui serait implicite parpublic
.OriginalL'auteur Steve Townsend
Cela signifie que le champ n'est visible à la classe elle-même et les classes héritées.
OriginalL'auteur Oskar Kjellin
Pensez-y comme ça. Une classe présente trois interfaces:
friend
, bien sûr)!La troisième interface est le plus difficile de la conception générale défi dans OO: ce qui peut raisonnablement être remplacé (virtuel méthodes et propriétés), et afin de le remplacer, ce que d'autres fonctionnalité est nécessaire (plaine protégée méthodes et attributs)? Parce que c'est un défi à relever, ayant classes
sealed
par défaut est effectivement une bonne idée, contraire à l'intuition comme c'est souvent le semble OO les débutants, à qui il semble inutile de handicap.OriginalL'auteur Pontus Gagge