Hvad er forskellen i C# mellem public, private, protected og uden adgangsmodifikator?

I alle mine studieår har jeg brugt public, og jeg vil gerne kende forskellen mellem public, private og protected?

Hvad gør også static i modsætning til at have ingenting?

Hmm.

Se her: Adgangsmodifikatorer.

I en nøddeskal:

Public giver metoden eller typen fuldstændig synlighed fra andre typer/klasser.

Private giver kun den type, der indeholder den private metode/variabel, adgang til den private metode/variabel (bemærk, at indlejrede klasser også har adgang til den indeholdende klasses private metoder/variabler).

Beskyttet svarer til privat, bortset fra at afledte klasser også kan få adgang til beskyttede metoder.

"Nothing" er VB.NET's ækvivalent til null. Men hvis du henviser til "nothing" som betyder "ingen adgangsmodifikator", så afhænger det af det, selv om en meget grov tommelfingerregel (i hvert fald i C#) er, at hvis du ikke udtrykkeligt angiver en adgangsmodifikator, er metode/variable-deklarationen normalt så begrænset som muligt. dvs.

public class MyClass
{
    string s = "";
}

er effektivt det samme som:

public class MyClass
{
    private string s = "";
}

Den linkede MSDN-artikel vil give en fuldstændig beskrivelse, når der ikke er angivet nogen adgangsmodifikator eksplicit.

Kommentarer (0)

mmm...

Statisk betyder, at du kan få adgang til den pågældende funktion uden at have en instans af klassen.

Du kan få adgang direkte fra klassedefinitionen.

Kommentarer (0)

Disse adgangsmodifikatorer angiver, hvor dine medlemmer er synlige. Du bør nok læse dette. Tag udgangspunkt i det link, som IainMH har givet dig, som et udgangspunkt.

Statiske medlemmer er ét pr. klasse og ikke ét pr. instans.

Kommentarer (0)