Hirdetés
- Luck Dragon: Asszociációs játék. :)
- Mr Dini: Mindent a StreamSharkról!
- sidi: 386-os Chicony gázplazma laptop memóriabővítése
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- Pitterix: Gyógytorna
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Brogyi: CTEK akkumulátor töltő és másolatai
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- GoodSpeed: Kell-e manapság egérpad vagy sem?
Új hozzászólás Aktív témák
- 
			
			  pmonitor aktív tag válasz  pmonitor
							
							
								#10083
							
							üzenetére pmonitor
							
							
								#10083
							
							üzenetéreHa jól emléxem, akkor már többször linkeltem be ezt a linket. Ez a másik fórumról való. Ott oldottam meg. Maga a kód(ami nem működik: using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 namespace GenericTest
 {
 interface ITorol
 {
 void delete();
 }
 class GenerikusTipus<T>
 {
 T adat;
 public GenerikusTipus(T adat)
 {
 this.adat = adat;
 }
 public T GetErtek()
 {
 return adat;
 }
 public void TorlunkHaTudja()
 {
 if (adat is ITorol)
 (adat as ITorol).delete();
 }
 }
 struct Valami : ITorol
 {
 public int ertek;
 public Valami(int ertek)
 {
 this.ertek = ertek;
 }
 public void delete()
 {
 ertek = 0;
 }
 new public string ToString()
 {
 return ertek.ToString();
 }
 }
 class Program
 {
 static void Main(string[] args)
 {
 Valami v = new Valami(5);
 GenerikusTipus<Valami> genTip = new GenerikusTipus<Valami>(v);
 Console.WriteLine(genTip.GetErtek().ToString());
 genTip.TorlunkHaTudja();
 Console.WriteLine(genTip.GetErtek().ToString());
 Console.ReadKey();
 }
 }
 }A "megoldásom": Az as operátor ugye csak referencia, ill. nullabe típusok esetén működik. Tehát akkor az adott típust ki kell tenni object-be(ami ugyebár referencia típus), ez már magában hordozza a "metaadatokat" is. Na most így már alkalmazhatónak kell lennie az object példányra az as operátornak. Viszont a végén az adat-ba be kell tenni a kapott értéket. if (adat is ITorol) 
 {
 object o = adat;
 (o as ITorol).delete();
 adat = (T)o;
 }Ez érdekességnek jó, de "élesben" nem igazán használnám... Ha ezt a kódot(és a megoldást) valaki becsülettel megnézi, akkor egyértelműen látszik, hogy a metódusok 1 boxingolt típussal(másolattal) dolgoznak. Ezért van az, hogy az o objectet a törlés után vissza kell tenni az aktuális mezőbe. Az érték típusok csak az alapműveletek esetén(*/+-) nagyon gyorsak. metódushívás esetén nagyon lassú. 
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Milyen notebookot vegyek?
- One otthoni szolgáltatások (TV, internet, telefon)
- LEGO klub
- Okos Otthon / Smart Home
- Filmvilág
- Windows 10
- Miért nem tűnik el soha a kalózkodás?
- Black Friday november 29. / Cyber Monday december 2.
- TCL LCD és LED TV-k
- Xiaomi 15 - kicsi telefon nagy energiával
- További aktív témák...
- Lenovo Thinkcentre M920t Tower/ M720s / M920s SFF / i5-8-9. gen/ WIN10-11/számla, garancia
- Apple iPhone 11 64GB, Kártyafüggetlen, 1 Év Garanciával
- LG 27UL500P-W - 27" IPS - 3840x2160 4K - 60Hz 5ms - HDR10 - AMD FreeSync - 300 Nits - sRGB 99%
- DX Racer fekete gamer, irodai szék
- LG UltraFine 4K és Smart Monitorok: FRISS SZÁLLÍTMÁNY -30%
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: Promenade Publishing House Kft.
Város: Budapest
 
								 
							
