webForumDet fria alternativet

instansiering

.NETur .NET

2 svar · 280 visningar · startad av Prästen

PrästenMedlem sedan dec. 2000537 inlägg
#1

1. hur kommer det sig att vissa klasser inte har en konstruktor alls. jag menar varför har dem inte det, vad är det bra för?.

2. Varför har vissa Structure:r en konstruktor?, vad i fasicken. vad ska en structure ha en konstructor till. En struct hara ju bara egenskaper?(tydligen inte), eller har jag fel?.

trexterMedlem sedan mars 20021 889 inlägg
#2

Konstrukors körs när objekt skapas. Om man t ex vill att en variabel ska lagra ett visst värde så fort ett objekt skapas så vill man använda en konstruktor, annars inte. Värden till konmstruktorna skickas oftast som parametrar från programmeraren vid instatieringen.

Antar att detta bara var svar på en del av frågan men ändå...

:)

nikoMedlem sedan juni 20022 599 inlägg
#3

hur kommer det sig att vissa klasser inte har en konstruktor alls. jag menar varför har dem inte det, vad är det bra för?.

Det är väl inte bra för något särskilt. Men, om man inte har någon initalisering som behöver göras så finns det ju ingen anlednig att skriva en konstruktor. (Dock kommer kompilatorn alltid att lägga till en tom konstruktor om man utelämnar den.)

Det går också att ange en private konstruktor vilket medför att klassen inte kommer att kunna instansieras (vilket kan vara bra för statiska klasser).
Det går också i .NET att deklarera en konstruktor som static vilket medför att den bara körs en gång då det första objektet skapas.

vad ska en structure ha en konstructor till. En struct hara ju bara egenskaper?(tydligen inte), eller har jag fel?.

En struct kan ha behov av att initialisera sina fält precis som en klass. Det är ju inte tillåtet att göra det inne i structen;

	public struct myPoint
	{
		public int x=5,y=5; //Fel!

	}

däremot:

	public struct myPoint
	{
		public int x,y;
		public myPoint(int x,int y) //OK!
		{
			this.x=x;
			this.y=y;
		}
	}

och sen instansiera med:

	myPoint p=new myPoint(5,5);

PS. Jag kan gissa din nästa fråga (och den är rätt bra). DS.

134 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)