Hirdetés
- iPhone topik
- Apple iPhone 16 Pro - rutinvizsga
- Google Pixel 8 Pro - mestersége(s) az intelligencia
- Apple Watch Sport - ez is csak egy okosóra
- Samsung Galaxy S22 és S22+ - a kis vagány meg a bátyja
- Leminősítik az S26 Ultra zoomkameráját
- Kempinglámpa helyett kürt
- Poco F6 5G - Turbó Rudi
- Xiaomi Mi 8 - így csinálunk csúcsmodellt Mi
- Az Apple bemutatta az iPhone 17-et
Új hozzászólás Aktív témák
-
pmonitor
aktív tag
válasz
pmonitor #10083 üzenetére
Ha 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!
- Azonnali VGA-s kérdések órája
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Azonnali fáradt gőzös kérdések órája
- Bluetooth hangszórók
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- One otthoni szolgáltatások (TV, internet, telefon)
- LEGO klub
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- iPhone topik
- Disney+
- További aktív témák...
- Kingston FURY 64GB KIT DDR5 - 5200 MHz Beast
- Bomba ár! Lenovo ThinkPad T495 - AMD Ryzen PRO 5 I 16GB I 256GB SSD I 14" FHD I Cam I W11 I Gari!
- Bomba ár! HP Elite Dragonfly G2 - i5-11G I 8GB I 256SSD I 13,3" FHD Touch I Cam I W11 I Garancia!
- Bomba ár! HP Elite Dragonfly G1 - i5-8G I 8GB I 256SSD I 13,3" FHD Touch I Cam I W11 I Garancia!
- Eladó Canon eos 700d fényképezőgép
- HIBÁTLAN iPhone 13 mini 128GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3330
- Konica Bizhub C220 A3 fénymásoló
- GYÖNYÖRŰ iPhone 11 Pro Max 256GB Gold -1 ÉV GARANCIA - Kártyafüggetlen, MS3268, 100% Akkumulátor
- Eladó Apple iPhone 14 Pro 128GB Arany / 12 hó jótállás
- Bomba ár! HP EliteBook Folio 1040 G2 - i5-G5 I 8GB I 256GB SSD I 14" HD+ I Cam I W10 I Garancia!
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest