- Apple iPhone 17 Pro Max – fennsík
- Samsung Galaxy Z Fold6 - ugyanaz, sarkosan fogalmazva
- iPhone topik
- EarFun Air Pro 4 - a cél a csúcs
- Apple iPhone 17 - alap
- Fotók, videók mobillal
- Android alkalmazások - szoftver kibeszélő topik
- Google Pixel topik
- Apple iPhone Air - almacsutka
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
Ú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!
- Robot fűnyírók
- Lakáshitel, lakásvásárlás
- Luck Dragon: Asszociációs játék. :)
- Path of Exile 2
- Apple iPhone 17 Pro Max – fennsík
- Kamionok, fuvarozás, logisztika topik
- Futás, futópályák
- Hardcore café
- Samsung Galaxy Z Fold6 - ugyanaz, sarkosan fogalmazva
- Itt van az ASUS legfrissebb, AMD platformra épülő mini PC-je
- További aktív témák...
- Honor Magic 7 Pro 512 Gb - AI Pro kamera, 6,8 120 Hz LTPO OLED, Snapdragon 8 Elite,3 hó gari!
- Samsung Galaxy Z Fold6 Navy Duplakijelzős produktivitás, 120 Hz, Galaxy AI,2027. 09. 19
- Apple iPhone Air Space Black Pehelykönnyű elegancia,100% akku (6 ciklus) Garancia 2026. 09. 25
- Alienware AW3423DWF Ívelt Gamer Monitor!34"/QD-OLED/165hz/0,1ms/10BIT/Freesync-G-sync/Alien FX
- Iphone 15 Pro Max 512GB Natúr titán
- Azonnali készpénzes AMD Radeon RX 6000 sorozat videokártya felvásárlás személyesen/csomagküldéssel
- GYÖNYÖRŰ iPhone 11 128GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS3271, 100% Akkumulátor
- Gamer PC-Számítógép! Csere-Beszámítás! I7 10700K / RX 6700XT 12GB / 32GB DDR4 / 1TB SSD
- GYÖNYÖRŰ iPhone 13 mini 128GB Blue -1 ÉV GARANCIA -Kártyafüggetlen, MS3597
- GYÖNYÖRŰ iPhone 15 Pro Max 256GB Black Titanium -1 ÉV GARANCIA - Kártyafüggetlen, MS3067
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest