de-vraag
  • Ερωτήσεις
  • Ετικέτες
  • Χρήστες
Ειδοποιήσεις
Ανταμοιβές
Εγγραφή
Μόλις εγγραφείτε, θα ενημερωθείτε για τις απαντήσεις και τα σχόλια στις ερωτήσεις σας.
Συνδεθείτε
Αν έχετε ήδη λογαριασμό, συνδεθείτε για να ελέγξετε τις νέες ειδοποιήσεις.
Θα υπάρξουν ανταμοιβές για πρόσθετες ερωτήσεις, απαντήσεις και σχόλια.
Περισσότερα
Πηγή
Επεξεργασία
 lomaxx
lomaxx
Ερώτηση

Κλήση του βασικού κατασκευαστή σε C#

Αν κληρονομήσω από μια βασική κλάση και θέλω να περάσω κάτι από τον κατασκευαστή της κληρονομούμενης κλάσης στον κατασκευαστή της βασικής κλάσης, πώς το κάνω αυτό;

Για παράδειγμα,

Αν κληρονομήσω από την κλάση Exception θέλω να κάνω κάτι τέτοιο:

class MyExceptionClass : Exception
{
     public MyExceptionClass(string message, string extraInfo)
     {
         //This is where it's all falling apart
         base(message);
     }
}

Βασικά αυτό που θέλω είναι να μπορώ να περάσω το μήνυμα string στην βασική κλάση Exception.

1388 2008-08-15T07:39:23+00:00 3
Ola Ström
Ola Ström
Επεξεργασμένη ερώτηση Κάνε Απρίλιος 2019 в 11:32
Προγραμματισμός
constructor
c#
inheritance
Αυτή η ερώτηση έχει 1 απάντηση στα αγγλικά, για να τις διαβάσετε συνδεθείτε στο λογαριασμό σας.
Λύση / Απάντηση
Jon Limjap
Jon Limjap
Κάνε Αύγουστος 2008 в 7:40
2008-08-15T07:40:22+00:00
Περισσότερα
Πηγή
Επεξεργασία
#8415706

Τροποποιήστε τον κατασκευαστή σας με τον ακόλουθο τρόπο ώστε να καλεί σωστά τον κατασκευαστή της βασικής κλάσης:

public class MyExceptionClass : Exception
{
    public MyExceptionClass(string message, string extrainfo) : base(message)
    {
        //other stuff here
    }
}

Σημειώστε ότι ένας κατασκευαστής δεν είναι κάτι που μπορείτε να καλέσετε οποιαδήποτε στιγμή μέσα σε μια μέθοδο. Αυτός'είναι ο λόγος για τον οποίο λαμβάνετε σφάλματα στην κλήση σας στο σώμα του κατασκευαστή.

Jon Limjap
Jon Limjap
Επεξεργασμένη απάντηση Κάνε Αύγουστος 2008 в 7:48
1727
0
 Axl
Axl
Κάνε Απρίλιος 2010 в 5:34
2010-04-28T17:34:20+00:00
Περισσότερα
Πηγή
Επεξεργασία
#8415709

Σημειώστε ότι μπορείτε να χρησιμοποιήσετε στατικές μεθόδους μέσα στην κλήση του βασικού κατασκευαστή.

class MyExceptionClass : Exception
{
     public MyExceptionClass(string message, string extraInfo) : 
         base(ModifyMessage(message, extraInfo))
     {
     }

     private static string ModifyMessage(string message, string extraInfo)
     {
         Trace.WriteLine("message was " + message);
         return message.ToLowerInvariant() + Environment.NewLine + extraInfo;
     }
}
 Abhishek
Abhishek
Επεξεργασμένη απάντηση Κάνε Αύγουστος 2015 в 5:17
486
0
 SnowBEE
SnowBEE
Κάνε Δεκέμβριος 2009 в 5:03
2009-12-04T05:03:34+00:00
Περισσότερα
Πηγή
Επεξεργασία
#8415708
public class MyExceptionClass : Exception
{
    public MyExceptionClass(string message,
      Exception innerException): base(message, innerException)
    {
        //other stuff here
    }
}

Μπορείτε να περάσετε εσωτερική εξαίρεση σε έναν από τους κατασκευαστές.

26
0
Προσθήκη ερώτησης
Κατηγορίες
Όλα
Τεχνολογία
Πολιτισμός / Αναψυχή
Ζωή / Τέχνες
Επιστήμη
Επαγγελματικό
Επιχείρηση
Χρήστες
Όλα
Νέα
Δημοφιλές
1
Виталий Теслюк
Εγγεγραμμένη πριν 1 μέρα
2
shokir qochqorov
Εγγεγραμμένη πριν 1 μέρα
3
Roxana Elizabeth CASTILLO Avalos
Εγγεγραμμένη πριν 1 εβδομάδα
4
Hideo Nakagawa
Εγγεγραμμένη πριν 1 εβδομάδα
5
Sergiy Tytarenko
Εγγεγραμμένη πριν 1 εβδομάδα
DA
DE
EL
ES
FR
ID
IT
JA
KO
LT
NL
PT
RU
TR
ZH
© de-vraag 2022
Πηγή
stackoverflow.com
με άδεια cc by-sa 3.0 με αναφορά