10
votes

Super déclaration en C #

Je crée une classe pour gérer une exception en C # et je voudrais créer des méthodes de constructeur qui rappelle la superclasse; C'est la définition de ma classe: xxx

mais depuis en c # il n'y a pas de super méthode ce que je suis censé appeler pour obtenir les méthodes de constructeur de system.exception ?


1 commentaires

Non directement liée à la question, mais l'extrait «Exception» dans Visual Studio est très utile, elle génère des constructeurs (4) qui appellent la base CTOR, ainsi que la CTOR pour le support de sérialisation.


3 Réponses :


10
votes

en général le mot clé base est ce que vous voulez. Vérifiez http://msdn.microsoft.com/en-us/library/ hfw7t1ce (v = vs.71) .aspx


0 commentaires

15
votes

Vous appelez un constructeur parent à l'aide de base avant le corps du constructeur: xxx

évidemment, vous ne ont pour simplement passer un paramètre à partir de votre propre constructeur en tant qu'argument sur le constructeur de base: xxx

L'équivalent à la chaîne à un constructeur de la classe actuelle est utiliser ceci au lieu de base .

Notez que le constructeur chaînage fonctionne très légèrement différemment en C # par rapport à Java, avec Respectez lorsque les initialisateurs variables d'instance sont exécutés. Voir mon Article sur C # constructeurs pour plus de détails.


0 commentaires

1
votes
class DataSourceNotFoundException: System.Exception {
    public DataSourceNotFoundException()
        : base()
    {
        //some code
    }

    public DataSourceNotFoundException(string message, object other)
        : base(message)
    {
        //some code
    }

0 commentaires