Permalänk

Public / private static void c#

Hej,

Jag har läst massor på internet men blir inte klokare.. Kan någon förklara på ett lite enklare sett vad varje ord betyder?

private static void Main();

Private -
Static -
Void-

Och även gärna Public.

Jag har förstått det såhär, stämmer det?
Private - kommer man bara åt internt i klassen.
Static – Man kan inte instansiera något. Du kan inte skapa ett objekt av en statisk klass. Kan bara innehålla statiska metoder.
Public - public betyder att metoden är publik, att man kan komma åt den från andra klasser(?)
Void?

Tack på förhand!

Permalänk
Medlem

Void är vad funktionen returnerar, dvs ingenting, det finns ingen return i metoden

https://stackoverflow.com/questions/2390767/whats-the-differe...

Visa signatur

Oldschool [å:ldsku:l] adj. Användandet av datorprodukter som är äldre än 3 månader.

Permalänk
Medlem

Private - funktioner kan endast nås inom egna klassen
Static - Du behöver inte en instans av ett objekt för att anropa funktionen
Void - returnerar ingenting
Public - funktioner kan nås inom andra klasser

Permalänk
Medlem

"Static – Man kan inte instansiera något. Du kan inte skapa ett objekt av en statisk klass. Kan bara innehålla statiska metoder"

Just i detta fallet är det en metod som är static och det Harddrive skriver stämmer om det. Men som du skriver så kan man ha statiska klasser också. De är liknande, men inte samma.

Visa signatur

i5-7600k . GTX 1080 . 16 GB

Permalänk
Medlem

När du anropar en metod så kan du genom parametrar skicka med data. När metoden är klar kan också data skickas tillbaka till den första metoden. (Returnera) Men för att det ska gå måste du ersätta void med den datatyp som ska skickas tillbaka. Void betyder därför ingenting, utan är bara en placeholder.

Visa signatur

AMD Ryzen 7 5800X3D | EVGA GeForce RTX 3080 10GB FTW3 ULTRA | ASUS ROG Strix B450-F Gaming | Corsair RM750X V2 | Crucial Ballistix Sport LT 3200MHz 16GB | Samsung 980 Pro 1TB | Crucial MX500 2TB | NZXT H500

Permalänk
Medlem

Ja, det stämmer i princip. Det viktigaste med static här är nog dock att alla instanser av klassen har samma kopia av metoden och dess data.

Void betyder bara att inte värde ska returneras.

Mitt tips är att du inte fokuserar så mycket på dessa detaljer nu utan kör lite grundläggande tutorialer från Hello World-övningar och uppåt. Då kommer du ganska snabbt lära dig de saker du frågar om här

Permalänk
Medlem

Din idé om private/public är korrekt. T.ex. kan du ha en variabel deklarerad som private för att tvinga att andra klasser endast kan läsa eller skriva till dem med hjälp av klassens egna metoder, då deklarerade som public.

Static är något som ligger hos klassen själv, snarare än objekt av klassen. Du kan t.ex. ha en statitsk variabel som anger hur många instansierade objekt det finns av en viss klass. Då lagras inte den datan med de faktiska objekten, utan separat och därför också utan kopior.

Void betyder ingeting, och placeras där man definierar returvärdet för att ange att metoden inte returnerar något.

Visa signatur

Redbox: Asrock B650 Lightning ATX, 7800x3D -20CCO, XFX 6950XT, 2x32GB Corsair Vengence 6400 CL32, WD SN770 2TB, Corsair RMe 1000, Lian Li Lancool 216, Peerless Assassin 120 SE
Purpbox: Z87-Pro, I5 4670K@4.2, Sapphire 290 TRI-X, 2x8GB Crucial Tactical@stock, Deep Silence 1
Samsung Evo 250+500GB + QVO 1TB, 2x1TB 7200RPM backup/lagring
Det var bättre förr: E5300 2600MHz -> 3640MHz, Celeron 300A -> 450MHz

Permalänk

Tack så mycket för alla svar!! Nu förstår jag lite bättre!