- Amlogic S905, S912 processzoros készülékek
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Mini-ITX
- Kezdő fotósok digitális fényképei
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
- NVIDIA GeForce RTX 4080 /4080S / 4090 (AD103 / 102)
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Milyen egeret válasszak?
- Soundbar, soundplate, hangprojektor
- Milyen billentyűzetet vegyek?
Ú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!
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Amlogic S905, S912 processzoros készülékek
- Kerékpárosok, bringások ide!
- Milyen okostelefont vegyek?
- Autós topik
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- alza vélemények - tapasztalatok
- Google Pixel 9 Pro XL - hét szűk esztendő
- Hitelkártyák használata, hitelkártya visszatérítés
- Mini-ITX
- További aktív témák...
- Lenovo ThinkPad T14 Gen 3:i5 1250P(12mag),16GB,512GB,14"matt TOUCH,vil.HU bill,Lenovo gari 2026.6.25
- Amazfit Gtr 3 Pro okosóra dobozával újszerű állapotban
- i3-8100 + ASUS H310M alaplap + 8GB RAM egyben (félkonfig)
- Asztali PC , R5 5500 , RX 6700 XT , 32GB RAM , 512GB NVME , 1TB HDD
- Sony PlayStation 5 Fat 825 GB eredeti doboz, gyári kontroller
- BenQ PD-3200-U Monitor - Designer 4K 32"
- BenQ PD-2700-U Monitor - Designer 4K 27"
- Felújított szerverek, storage-ok, hálózati eszközök Enterprise szinten, minden gyártótól
- BESZÁMÍTÁS! ASRock B250 i5 7400 16GB DDR4 512GB SSD GTX 1660 SUPER 6GB Rampage Everest 500W
- AKCIÓ! HP ZBook Firefly 14 G9 üzleti notebook- i7 1255U 32GB RAM 512GB SSD nVidia T550 4GB Win11
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest