2013-03-18 12 views
8

w C++ jest to możliwe, aby stworzyć „blok” członków przez prywatności:Czy jest możliwe utworzenie "prywatnego" lub "publicznego" bloku w C# jak w C++?

private : 
    int var1; 
    char var2; 
    ... 

public : 
    int var3; 
    char var4; 
    ... 

Próbowałem znaleźć przykłady to samo w C#, ale nie mógł znaleźć. Próbowałem napisać taki blok w Visual Studio, ale dostałem błąd.

Czy istnieje podobna składnia, która jest poprawna w C#?

+1

Nie Każdy element musi mieć prefiks z modyfikatorem dostępu lub odwołuje się do domyślnego. – Hut8

+1

Myślę, że krótka odpowiedź brzmi: Nie. –

+0

Obecnie nie ma odpowiedzi. – nsconnector

Odpowiedz

7

Krótka odpowiedź to nie, nie ma. Zawsze należy wpisać specyfikator dostępu przed swoim polem/metodą.

public int var1; 
public char var2; 

Należy zauważyć, że domyślnym specyfikatorem jest private. Jest to kwestia projektu, ale zawsze jednoznacznie wyznaczyłem modyfikator. (I nawet jeśli jest to tylko dla spójnego wcięcia!)

Przeczytaj więcej na temat Accessibility Levels (C#) na msdn.

3

Nie, powinieneś napisać modyfikator dostępu przed każdym członkiem (właściwość, pole lub metoda).

2

Krótka odpowiedź: nie. Musisz prefiks dla każdej linii z jednym ze specyfikatorów dostępu. Jeśli nie, istnieje domyślny (prywatny dla członków, wewnętrzny dla typów).

0

Nie, to nie jest możliwe, ale jeśli chcesz członków klasy grupy do grupy logiczne, można użyć regions:

#region Private properties 

private int var1; 

#endregion 
+0

Proszę nie używać regionów, czytanie takiego kodu powoduje ciągłe rozszerzanie/zwijanie regionów przez cały czas ...Grupowanie członków z tym samym poziomem dostępu powinno być w porządku. –

+0

Uh, cieszę się, że nie jestem jedynym, który nienawidzi regionów .. –

+0

Niektórzy ludzie uwielbiają regiony, a ja znajduję je w kodzie napisanym przez innych programistów. Osobiście też ich nie lubię. –

0

To nie możliwe. Oto kilka innych wskazówek choć:

Jeśli chcesz, aby osiągnąć inny dostępowi do czytania i pisania spróbuj tego:

public int Var1 { get; private set; } 

Jeśli twoim celem jest po prostu skrócenie kodu, to oszczędza przynajmniej niektóre znaki.

private int _var1, _var2, _var3; 
private char _char1, _char2; 
0

Obecnie odpowiedź brzmi "nie". Intencją dodanie modyfikatorów dostępu jak

public string name; 
public string address; 

było uczynienie kod bardziej czytelny.

Powiązane problemy