Mittwoch, Januar 22, 2020

Wie der Zugriff auf eine statische Methode in c#?

Wenn wir eine statische Methode in einer Klasse nur statische member zugreifen Recht und
die statische Methode kann nur den Zugriff mit Klassenname. Also ich bin nicht in der Lage, den Zugriff auf die statische Methode in meinem Beispiel:

class myclass
{
    int i  ; static int j ;
    static void get()
    {
        j = 101;
        Console.WriteLine(j.ToString ());
    }
    public void test()
    {
        i = 11; j = 12;
        Console.WriteLine(i.ToString());
        Console.WriteLine(j.ToString());
    }
}
class Program
{
    static void Main(string[] args)
    {
        myclass clsmyclas = new myclass();
        clsmyclas.test();

        Console.ReadLine();
    }
}

}

5 Kommentare

  1. 9

    Sollten Sie es ändern, um

    public static void get() 

    und mit

    myclass.get();

    Nicht eine Instanz der Klasse.

    • Danke, es ist in Ordnung, danke für die Antwort Herr astander
    • Nein, es ist nicht sicher, dass er tatsächlich sollte ändern Sie es in der öffentlichkeit. Es sind andere ein – / Ausgabehilfe Ebenen zugänglich macht, die möglicherweise besser geeignet für die situation.
  2. 5

    Ihre Frage ist einfach. Die Standard-accessor für eine static void Methode ist private. Fügen Sie einfach entweder public oder internal vor der get Methode und du bist gut zu gehen.

    Auch, es wäre am besten, nicht zu nennen die Methode get um Verwirrung zu vermeiden, die mit den Eigenschaften.

  3. 1

    Müssen Sie machen myclass.Holen Sie sich eine öffentliche Methode.

    • ya ich hab es vielen Dank, Herr mrjoltcola und für die Antwort auch
    • Nein, er muss nicht. Es sind andere ein – / Ausgabehilfe Ebenen, macht es zugänglich und besser sein könnte, je nach situation. Oh, und was ist ein „public“ – Methode? 😉
    • Sie sind nicht öffentlich-phobe sind Sie? 😉
    • Ich benutze oft öffentliche und mich, aber eine Antwort sollte nicht sagen, dass die öffentlichkeit die einzig mögliche option, wenn es nicht so ist.
    • Wer sagt, was für eine Antwort sollte nicht sagen? Dies ist ein öffentliches Wiki. Ich denke, Sie werden die pedantisch Polizei. Ich entschied mich, nicht zu schweigen von all den möglichen Umfang Modifikatoren. Es ist eine Antwort, die (neben Ihren eigenen), der erklärt, interner; upvote es. Immer höre eine Aussage wie, „Sie brauchen, um Holen Sie sich ein Auto“? Die Implikation ist, ein Auto ist eine tolle Idee, für einige. Aber ein Motorrad oder ein Fahrrad besser geeignet sein können. öffentlichkeit tun. Aber ich denke, wir alle bekommen Sie Ihren Punkt.
  4. 1

    Den Standard-Zugänglichkeit eines Mitgliedes ist für die meisten privaten, die möglich ist. Das bedeutet, dass Ihre Methode ist private, da Sie noch nicht angegeben, jede Zugriffsebene.

    Müssen Sie angeben, als „öffentlich“ (oder intern aus, wenn Sie nur zugreifen müssen innerhalb des gleichen Projekts) zu erreichen:

    public static void get()

    oder:

    internal static void get()
    • ya vielen Dank, Herr Guffa, es funktioniert, danke für die Antwort
  5. 0

    Sie können eine beliebige access-modifier, die Sie auf Ihre statische Methoden.

    Zugriff natürlich nur begrenzt die Möglichkeit es außerhalb der Klasse selbst.

    Aber statische Methoden können mit dem Schlüsselwort this als Referenz auf die übergeordnete Klasse.

    Abhängig von der Zugriffsebene der Methode, die Sie aufrufen können, eine Methode statisch als:

    ClassName.Property
    ClassName.Method
    ClassName.Field

Kostenlose Online-Tests