Comment Obtenir de la Classe de Base de l'Instance d'une Classe Dérivée
Je ne sais pas si c'est possible, mais j'essaie d'obtenir la Classe de Base de l'instance d'une Classe Dérivée. En C#, je peux utiliser le base mot clé pour accéder aux propriétés et méthodes de la Classe de Base (bien sûr), mais je veux l'utiliser base lui-même. Tenter de faire des résultats dans un , "l'Utilisation du mot-clé" de base " n'est pas valide dans ce contexte," erreur.
Exemple De Code
public class SuperParent
{
public int SPID;
public SuperParent()
{
}
}
public class SubChild : SuperParent
{
public SubChild(int pSPID)
{
base.SPID = pSPID;
}
public int BaseSPID
{
get
{
SuperParent sp = base;
return sp.SPID;
}
}
}
Un extrait de code vaut 1000 mots. Veuillez fournir un extrait de ce que vous voulez atteindre
Pouvez-vous nous montrer ton code, je n'arrive pas à comprendre ce que vous essayez de faire, merci.
OP sait à ce sujet, mais il n'est pas clair ce qu'il veut... Peut-être quelque chose le long des lignes de "retour de la base;"></a >
Si vous travaillez avec une instance de la classe dérivée, il n'y a pas de
Je pense que vous voulez dire quelque chose comme ceci
Pouvez-vous nous montrer ton code, je n'arrive pas à comprendre ce que vous essayez de faire, merci.
OP sait à ce sujet, mais il n'est pas clair ce qu'il veut... Peut-être quelque chose le long des lignes de "retour de la base;"></a >
Si vous travaillez avec une instance de la classe dérivée, il n'y a pas de
base instance
.Je pense que vous voulez dire quelque chose comme ceci
return base;
et cela a donné le problème?OriginalL'auteur OneSource | 2013-10-08
Vous devez vous connecter pour publier un commentaire.
Si vous travaillez avec une instance de la classe dérivée, il n'y a pas de
base instance
.Un exemple:
Ce n'est pas possible dans
B
:Vous pouvez faire quelque chose comme ceci:
Et vous pouvez ajouter une autre méthode comme
Et puis vous pouvez
Donc ce
GetBase()
méthode est probablement ce que vous voulez.Le mot de la fin: Si vous avez une instance de
B
, il hérite de toutes les propriétés et les non-remplacé le comportement deA
, mais il n'est pas constitué d'une instance deB
qui est titulaire d'un (caché mais automatique) une référence à une instance deA
. Vous pouvez lancer votreB
instance deA
, mais il reste à être une instance deB
.OriginalL'auteur Matten
Bien ne pas vous fournir le code de votre question, mais je supsect vous voulez quelque chose comme
Mais gardez à l'esprit que
MyBase
est vraiment de typeDerived
OriginalL'auteur Alessandro D'Andria
le problème n'a pas été expliqué aussi clairement qu'il le pourrait. cependant, généralement, il peut être préférable d'utiliser une classe de base abstraite et méthodes, puis remplacer les méthodes requises. vous pouvez ensuite utiliser la base.la méthode que nécessaire dans ce cas (sinon vous aurez juste filé en place une instance de la classe dérivée).
}
OriginalL'auteur jim tollan
La dérivée, l'instance de la base exemple. C'est juste une instance de l'objet en mémoire.
exemple:
thing
est une instance d'uneA
, et est aussi une instance d'unB
.Vous pourriez, par exemple, écrire cette ligne:
B thing2 = thing;
OriginalL'auteur Caleb
Point 1: si vous souhaitez créer une classe de base, dans des instances de la classe enfant qu'il ne vaut pas. Vous avez déjà public les choses accessibles à l'enfant.
Point 2: Si vous avez initialisé la classe enfant et que vous voulez obtenir de la classe de base "instance", alors comment pouvez-vous obtenir si ce n'est pas initialisé(Parce que maintenant la classe de base de l'instance n'est pas présent dans la mémoire physique, et il est juste un enfant instance de classe)?
OriginalL'auteur ataurrehman
OriginalL'auteur Subin Ninan
J'ai interprété ce qu'ils ont demandé un peu différemment que les autres réponses ici, donc j'ai pensé que je voudrais proposer mon de 0,02$.
Le résultat est un nouvel objet rempli avec la classe de base des propriétés de la classe enfant.
OriginalL'auteur BBQ Singular