Heim  >  Artikel  >  Backend-Entwicklung  >  Zusammenstellung von C#-Grundkenntnissen: C#-Klassen und -Strukturen (3)

Zusammenstellung von C#-Grundkenntnissen: C#-Klassen und -Strukturen (3)

黄舟
黄舟Original
2017-02-10 15:25:031532Durchsuche

1. Was sind die Funktionsmerkmale statischer Klassen und statischer Mitglieder? Code implementieren?
Statische Klassen und statische Mitglieder beziehen sich auf Klassen oder Mitglieder, die mit dem Schlüsselwort static definiert wurden. Alle Mitglieder einer statischen Klasse müssen statische Mitglieder sein, andernfalls wird ein Fehler gemeldet. Eines der Merkmale statischer Klassen und Mitglieder ist ihre Einzigartigkeit. Wenn es sich um eine statische Klasse handelt, kann sie nicht instanziiert werden. Wenn es sich um eine statische Variable oder Methode handelt, wird sie immer instanziiert, egal wie oft sie instanziiert wird nur eine statische Variable oder Methode sein.
ist wie folgt:
(1), statische Mitglieder

    public class StatTicMember
    {
        public static string testA = string.Empty;
    }
    
    class Program
    {
        static void Main(string[] args)
        {
            //StaticConstruct strc = new StaticConstruct();

            //StaticConstruct strcValue = new StaticConstruct(string.Empty);

            StatTicMember sMember1 = new StatTicMember();

            StatTicMember.testA = @"静态成员";

            Console.WriteLine(StatTicMember.testA);

            StatTicMember sMember2 = new StatTicMember();

            Console.WriteLine(StatTicMember.testA);

            Console.ReadLine();
        }
    }

Ergebnis:

Statische Mitgliedsfunktionen:
Muss bestehen Klassennamenreferenzen können nicht von Objekten einer Klasse referenziert werden. Unabhängig davon, wie oft eine Klasse instanziiert wird, gibt es nur den gleichen Bereich im Speicher Wenn sie in einer statischen Methode referenziert werden, müssen sie auch statisch sein, z. B.

(2), statische Klasse
    public class StatTicMember
    {
        public static string testA = string.Empty;

        public  string testB = string.Empty;

        public static void Method()
        {
            testA = @"my";//正确

            //testB = @"my";//错误
        }
    }

Ergebnis:
  public static class StaticClass
    {
        public static string testA = string.Empty;

        public static void StaticMethod()
        {
            Console.WriteLine(@"静态方法");
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            StaticClass.testA = @"静态类";

            Console.WriteLine(StaticClass.testA);

            StaticClass.StaticMethod();

            Console.ReadLine();
        }
    }


Statische Klassenfunktionen: Mitglieder müssen statisch sein.
Sie können den Klassennamen nicht direkt instanziieren bedeutet, dass diese Klasse nicht als Basisklasse verwendet werden kann und keine abstrakte Klasse sein kann, d. h. sie kann nicht abgeleitet werden. )
d.
Bei der Verwendung statischer Klassen und Mitglieder können statische Klassen nicht häufig verwendet werden, da nach dem Laden ein Bereich im Speicher vorhanden ist, der dort vorhanden ist, unabhängig davon, ob Sie ihn verwenden oder nicht. nimmt Speicher in Anspruch. Es kann in den folgenden Situationen verwendet werden:
a. Globale Variable, eine Variable, die im gesamten Projekt verwendet wird und deren Wert nicht einfach geändert werden kann, selbst wenn alle Module geändert werden, müssen sie reagieren.
b. Methoden, die nicht mit Instanzdaten arbeiten und nicht mit bestimmten Klassen im Code verknüpft sind, wie zum Beispiel einige Methoden in der Math-Klasse.

2. Funktionsmerkmale abdichten? Code implementieren? Warum versiegelte Klassen verwenden?

Eine versiegelte Klasse bezieht sich auf eine Klasse, die mit dem Schlüsselwort „sealed“ geändert wurde. Ihr Zweck besteht darin, eine Ableitung zu verhindern, das heißt, diese Klasse kann nicht vererbt werden. Eigenschaften:
kann nicht als Basisklasse verwendet werden, kann nicht abstrahiert werden und Aufrufe an versiegelte Klassen sind schneller.


3. Was ist eine abstrakte Klasse? Merkmale? Code implementieren? Was ist der Unterschied zwischen Schnittstelle und abstrakter Klasse?
    public sealed class SealedClass
    {
        public  string testA = string.Empty;
    }

Abstrakte Klasse bezieht sich auf eine Klasse, die mit dem Schlüsselwort abstract geändert wurde. Seine Funktion besteht darin, mehrere Klassen abzuleiten und die öffentlichen Methoden und Eigenschaften der Basisklasse gemeinsam zu nutzen.
Ergebnis:

   public abstract class AbstractClass
    {
        public abstract void CommonMethod();
    }

    public class ChildClass1 : AbstractClass
    {

        public override void CommonMethod()
        {
            Console.WriteLine(@"实现公用方法1");
        }
    }

    public class ChildClass2 : AbstractClass
    {

        public override void CommonMethod()
        {
            Console.WriteLine(@"实现公用方法2");
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            ChildClass1 chc1 = new ChildClass1();

            chc1.CommonMethod();

            ChildClass2 chc2 = new ChildClass2();

            chc2.CommonMethod();

            Console.ReadLine();
        }
    }

Der Unterschied zwischen abstrakten Klassen und Schnittstellen:

Eine Klasse ist eine Abstraktion eines Objekts als Klassen Als Objekt wird die abstrakte Klasse als abstrakte Klasse bezeichnet. Die Schnittstelle ist lediglich eine Spezifikation oder Regelung des Verhaltens. Auf die benutzerdefinierte Schnittstelle von Microsoft folgt immer ein fähiges Feld, das beweist, dass sie eine Klasse ausdrückt. „Ich kann …“ Abstrakte Klassen sind in einer Reihe eng verwandter Zwischen definiert Klassen, die meisten Schnittstellen sind lose miteinander verbunden, aber alle implementieren eine bestimmte Funktion. b Die Schnittstelle weist grundsätzlich keine spezifischen Vererbungsmerkmale auf, sie verspricht nur Methoden, die aufgerufen werden können Schnittstellen gleichzeitig, können aber nur eine übergeordnete Klasse erweitern;
Schnittstellen können zur Unterstützung von Rückrufen verwendet werden,
e. Die von abstrakten Klassen implementierten spezifischen Methoden sind standardmäßig virtuell, aber die Schnittstellenmethoden in der Klasse, die die Schnittstelle implementiert, sind standardmäßig nicht virtuell. Sie können natürlich auch als virtuell deklariert werden. Ähnlich wie bei Klassen muss auch eine abstrakte Klasse vorhanden sein stellt eigene Implementierungen für alle Mitglieder der in der Basisklassenliste der Klasse aufgeführten Schnittstellen bereit. Abstrakte Klassen dürfen jedoch Schnittstellenmethoden auf abstrakte Methoden abbilden.
h. Abstrakte Klassen implementieren ein Prinzip in oop, das das Veränderliche vom Unveränderlichen trennt. Abstrakte Klassen und Schnittstellen werden als unveränderlich definiert und die veränderlichen werden zur Implementierung an Unterklassen übergeben. Wenn eine Klasse nur eine Funktion dieser Schnittstelle implementiert und andere Methoden in der Schnittstelle implementieren muss, spricht man von Schnittstellenverschmutzung.
j. Wenn die abstrakte Klasse die Schnittstelle implementiert, können die Methoden in der Schnittstelle auf die abstrakte Klasse abgebildet werden Klasse Als abstrakte Methode in der Schnittstelle muss sie nicht implementiert werden, aber die Methoden in der Schnittstelle werden in der Unterklasse der abstrakten Klasse implementiert.

Das Obige ist der obige Inhalt. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)! Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn