Hirdetés
- „Új mérce az Android világában” – Kezünkben a Vivo X300 és X300 Pro
- Samsung Galaxy S24 - nos, Exynos
- Megtartotta Európában a 7500 mAh-t az Oppo
- Elgépelte a Nubia, hogy Air
- Poco F7 – bajnokesélyes
- iPhone topik
- Yettel topik
- Prohardver app (nem hivatalos)
- Garmin Instinct – küldetés teljesítve
- Fotók, videók mobillal
Ú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!
- A fociról könnyedén, egy baráti társaságban
- „Új mérce az Android világában” – Kezünkben a Vivo X300 és X300 Pro
- Kuponkunyeráló
- Linux kezdőknek
- Samsung Galaxy S24 - nos, Exynos
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Vicces képek
- Call of Duty: Black Ops 7
- V.Milán: A síntrabant, a falunap és Jézus esete
- Szeged és környéke adok-veszek-beszélgetek
- További aktív témák...
- Samsung Galaxy S22 Ultra 512GB, megkímélt, ajándék tokokkal
- GIGABYTE GeForce GTX 1070 WINDFORCE OC 8GB Garanciával!
- ÚJ AOC GK200 Bolti ár:13k INGYEN FOXPOST
- ÚJ Lenovo Idea Tab Pro - 12.7" 3K 144Hz (TB373FU) 12GB/256GB (ZAE40206GR) Luna Grey - 2 év garancia
- PowerColor Radeon RX 6700XT Red Devil 12GB Garanciával!
- Apple iPhone 15 PRO MAX 256 GB White Titanium 1 év Garancia Beszámítás Házhozszállítás
- ÁRGARANCIA! Épített KomPhone i5 12400F 16/32/64GB RAM RTX 3060 12GB GAMER PC termékbeszámítással
- DeepCool FK120 Performance Fan 3 Kit
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7600X 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- 143 - Lenovo LOQ (15IRH8) - Intel Core i5-13500H, RTX 4060 (ELKELT)
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


