C# Ordentlicher Programmierstil

Abcd12345

Lt. Junior Grade
Registriert
März 2006
Beiträge
483
Hi,

Da ich ja noch nicht so lange mit C# Programmier würde ich mir gerne gleich von Anfang an einen ordentlichen Stil angewöhnen, da ich das ganze ja auch für die Schule lerne kann dies ja nicht verkerht sein.

Ich hab daher 2 Fragen wo ich mir am Unsichersten bin:

1. Es kommt ja oft vor, das man Variablen einer Klasseinstanz inerhalb der Methoden einer andern Klasseinstanz ändern muss. Das mann diese Variablen deswegen nicht als "Public" deklaiert ist mir klar. Momentan mache ich es daher immer so das ich dann die ganze Klasseninstanz an die Method übergebe und dann dort mit einem Set Property auf die Variabel zugreife und sie so ändere. Ist dies so i.O oder sollte ich mit Methods auf die Variabel zugreifen um sie zu ändern?

2. Ich kennzeichne meine Variablen immer:
Code:
           m_Variabel -> Membervariabel
           m_fVariabel -> Membervariabel als float
           dVariabel -> normale double Variabel
usw..
Ist das so üblich oder sollte ich eine andere Kennzeichnung benutzen?

Gruß Abcd
 
1.: Public Variablen sind in C# sehr unüblich. Stattdessen verwendet man Properties:
Code:
public class MyClass
{
    private string myString;

    public string MyString
    {
        get { return myString; }
        set { myString = value; }
    }
}
Andere Klassen greifen dann nur noch über das Property auf das Feld zu.

2.: Bei mir würde das so aussehen:
Code:
private object variable1 -> Membervariable1
private float variable2 -> Membervariable als float
double variable -> normale double Variabel
Manche prefixen Membervariablen auch mit "_" (Bsp: private object _variable1), aber das ist Geschmackssache.
 
TheCadillacMan schrieb:
1.: Public Variablen sind in C# sehr unüblich. Stattdessen verwendet man Properties:
Code:
public class MyClass
{
    private string myString;

    public string MyString
    {
        get { return myString; }
        set { myString = value; }
    }
}
Andere Klassen greifen dann nur noch über das Property auf das Feld zu.

Joar so mache ich es ja auch. Habe mich vieleicht oben etwas missverständlich ausgedrückt..
Ist das aber nich auch fast so als wenn man auf die Variabel direkt zugreift "als wäre sie public)?

In C++ schreibt man sich ja Methoden um auf die privaten Member zuzugreifen


Code:
void ChangeMember (int ChangeValue)
{

           m_Member = ChangeValue;


}

Aber sowas macht man bei C# überhaupt nicht oder?
 
Abcd12345 schrieb:
Ist das aber nich auch fast so als wenn man auf die Variabel direkt zugreift "als wäre sie public)?
Stichwort: Kapselung. Angenommen du möchtest später beim setzen des Wertes überprüfen ob der Wert nicht größer als z. B. 100 ist. Bei einem Property veränderst du einfach den Setter und der Clientcode bleibt unverändert. Mit einem Feld geht das nicht.
Abcd12345 schrieb:
Aber sowas macht man bei C# überhaupt nicht oder?
Doch ein Property ist genau das. Das Property "MyProperty" wird bei compilieren in eine get_MyProperty und eine set_MyProperty Methode zerlegt.
 
TheCadillacMan schrieb:
Code:
public class MyClass
{
    private string myString;

    public string MyString
    {
        get { return myString; }
        set { myString = value; }
    }
}
In .Net 3.5 reicht sogar das:
PHP:
public class MyClass
{
    public string MyString  { get; set  }
    // Nur Setter:
   public string MyString2  { set;}
}

Grüße

kirzzel
 
nicht nur bei .net 3.5. Wenn du das VS2008 nutzt kannst du auch bei .net 2.0 Projekten das so schreiben, da die msbuild Engine vom 3.5 genutzt wird um die 2.0 Programme zu erzeugen
 
Zurück
Oben