Kezdőoldal » Számítástechnika » Programozás » C#-ban átlehet adni változót...

C#-ban átlehet adni változót generikus érték ként?

Figyelt kérdés

Van egy tömböm: List<Type> lista = new List<Type>() { typeof(Button) ... };

Illetve van egy függvényem: public void Fv<T>(){....}.

Sajnos nem engedi átadni, mint értéket: fv<lista[0].GetType()>();

Valahogyan megvalósítható ez a probléma?


2019. dec. 18. 16:39
 1/8 anonim ***** válasza:

void Fv<Type>(Type arg){

//...

}

2019. dec. 18. 16:48
Hasznos számodra ez a válasz?
 2/8 A kérdező kommentje:

Köszönöm. Megpróbáltam, de sajnos továbbra sem sikerül.

Ha változóba írva hívom meg (tipus néven): 'tipus' is a variable but is used like a type

Amennyiben az előbb írt módszerrel: Operator '<' cannot be applied to operands of type 'method group' and 'Type'

2019. dec. 18. 18:54
 3/8 anonim ***** válasza:
2019. dec. 18. 19:18
Hasznos számodra ez a válasz?
 4/8 anonim ***** válasza:
Nem lehet.
2019. dec. 18. 19:49
Hasznos számodra ez a válasz?
 5/8 anonim ***** válasza:

De amúgy sincs semmi értelme az egésznek.

A generikus programozás lényege pont az, hogy teljesen mindegy a típus, a program szempontjából lényegtelen.

2019. dec. 18. 19:50
Hasznos számodra ez a válasz?
 6/8 anonim ***** válasza:
Megoldás: örökölj, overrideolj. #oop
2019. dec. 18. 19:58
Hasznos számodra ez a válasz?
 7/8 anonim ***** válasza:

Szerintem te itt nagyon félreérted ennek a működését. A generikus típusparaméterek azok generikus típusparaméterek, a typeof operátor, az Object.GetType() metódushívás pedig kifejezések. Ott, ahol generikus típusparamétert vársz, oda egy fordítási időben ismert típusnevet kell írnod, és nem írhatsz kifejezést. Azért sem fog működni, mert a típusnév fordítási időben ismert, míg a kifejezés csak futási időben válik ismertté.


Egy módon természetesen meghackelheted a rendszert, mégpedig reflection segítségével. Bonyolult, lassú és nehezen olvasható az eredmény, de legalább működik. Ettől függetlenül nagyon erősen ellene vagyok, és azt mondom, hogy rossz gyakorlat, amit csinálni akarsz.

[link]

2019. dec. 19. 00:10
Hasznos számodra ez a válasz?
 8/8 anonim ***** válasza:
Ahogy a #7-es írja, Reflectionnel lekérheted azt a függvényt amit szereténl és meg tudod hívni, de valószínűleg nem így kéne megoldani azt amit szerentél.
2019. dec. 21. 17:49
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!