tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
3553
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Ardaric
    Ardaric Ardaric ist offline Mitglied Gold
    Registriert seit
    Feb 2004
    Beiträge
    148
    Worin liegt der Unterschied zwischen diesen Beispielen:

    static int iZahl = 0;
    und
    int iZahl = 0;

    und

    private static void Methode1(){}
    und
    private void Methode1(){}

    Vielen Dank
     

  2. #2
    Registriert seit
    Nov 2001
    Ort
    Gießen
    Beiträge
    4.091
    Statische Methoden und Felder in einer Klasse sind unabhängig von der Instanz der Klasse.
    Ein Beispiel:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    public class MeineKlasse {
        private static int staticProperty;
     
        public static int StaticProperty {
            get { return staticProperty; }
            set { staticProperty = value; }
        }
     
        private int normalProperty;
     
        public int NormalProperty {
            get { return normalProperty; }
            set { normalProperty = value; }
        }
    }
    Normalerweise musst Du erst ein Objekt der Klasse erstellen, um auf die Eigenschaften zuzugreifen:
    Code :
    1
    2
    
    MeineKlasse mk = new MeineKlasse();
    int normProp = mk.NormalProperty;
    Mit statischen Feldern und Methoden greifst Du aber nicht auf einzelne Objekte sondern auf die Klasse direkt zu:
    Code :
    1
    
    int statProp = MeineKlasse.StaticProperty;
    Statische Werte sind immer nur einmal pro Anwendung vorhanden, und nicht für jede Klasseninstanz einzeln.
     

  3. #3
    Avatar von Ardaric
    Ardaric Ardaric ist offline Mitglied Gold
    Registriert seit
    Feb 2004
    Beiträge
    148
    Danke, hat mir weitergeholfen
     

  4. #4
    Spinquantenzahl Tutorials.de Gastzugang
    Dieser Thread ist zwar schon sehr alt aber ich finde meine frage passt gut her:

    Nun gut eine statische methode heißt dass ich kein objekt der klasse brauche um auf die methode zuzugreifen.

    wie entscheide ich ob ich eine Methode/Variable static setze oder nicht?
     

  5. #5
    Avatar von Despair Blue
    Despair Blue Despair Blue ist offline Mitglied Bronze
    Registriert seit
    Apr 2005
    Beiträge
    42
    mhhh, also du meinst entweder wann es sich lohnt Methoden und Variablen für alle Instanzen zu teilen, oder du meinst wie du sie statisch machst

    zum warum kann ich dir nich viel sagen, hängt davon ab was die Methode macht oder die Variable, musst nunmal wissen ob der Benutzer deiner Klasse einen Wert nur einmal einstellen muss und alle Instanzen rechnen dann damit, oder ob doch jede Instanz nen Unterschiedlichen Wert haben muss/kann.

    zum wie: Setz einfach vor die Methoden oder Variablen deklaration "static" (bei vb "shared")

    Ich hoffe was ich hier geschrieben hab is richtig
     

  6. #6
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Zitat Zitat von Spinquantenzahl
    wie entscheide ich ob ich eine Methode/Variable static setze oder nicht?
    Hi und willkommen im Forum

    Methoden und Properties können (müssen aber nicht) static sein, wenn du darin nicht auf Felder der Klasse zugreifst. Soll heißen, dass Objekt an sich nicht änderst oder abfragst.

    Beipiel für Methoden, die nicht static sein können: (C#.NET)
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
    string GetName()
    {
           return this.name;
    }
     
    bool SetName(string name)
    {
           try
           {
                  this.name = name;
           }
           catch
           {
                 return false;
           }
           return true:
    }
    Bei beiden wird auf ein Feld innerhalb der Klasse zugegriffen.

    Beispiel für statisches Feld.
    Application.StartupPath
    Das Ausführungsverzeichnis der aktuellen Anwendung ist an jeder Stelle der Anwendung gleich.
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  7. #7
    Avatar von JensG
    JensG JensG ist offline Mitglied Platin
    Registriert seit
    Jun 2004
    Ort
    Gera (Thüringen)
    Beiträge
    517
    Hallo Zusammen,

    nur mal als Ergänzung.
    Das Schlüsselwort Static der Sprache C# hat eine vollkommen andere Bedeutung als in
    VB.NET ! static in C# wird zur Beschreibung gemeinsamer Klassevariablen bzw. zur Beschreibung von Methoden verwendet, die ohne ein Objekt verwendet werden können.
    In VB.NET ist das Äquivalent dazu das Schlüsselwort Shared und in VB.NET heißt Static
    einfach das diese Variable ihren Wert auch beim verlassen der Prozedur beibehält, so wie
    es auch in VB Classic ist.
     

Ähnliche Themen

  1. Antworten: 7
    Letzter Beitrag: 10.06.10, 23:16
  2. Antworten: 5
    Letzter Beitrag: 30.09.08, 16:22
  3. Drupal static page mit unterseiten, alle auf die static page verweisend
    Von flokli im Forum Content Management Systeme (CMS)
    Antworten: 0
    Letzter Beitrag: 07.06.08, 21:04
  4. Frage zu static und static const
    Von Xebov im Forum C/C++
    Antworten: 5
    Letzter Beitrag: 12.07.05, 09:38
  5. Antworten: 8
    Letzter Beitrag: 25.05.04, 15:31