olarak dönüştürülemez. Bu muhtemelen yeni bir sorudur, ancak Google şaşırtıcı bir şekilde yanıt vermemiştir. 'T' türünün değeri,
Ben bu işe umuyordum bu oldukça yapay yöntemT HowToCast<T>(T t)
{
if (typeof(T) == typeof(string))
{
T newT1 = "some text";
T newT2 = (string)t;
}
return t;
}
bir C geliyor ++ arka plan var. Bununla birlikte, "T 'türüne' T 'türünü dolaylı olarak dönüştüremiyorum" ve "Yukarıdaki" atamaların her ikisi için "T" türünü "dizgeye dönüştürülemiyor" ile derlenemiyor.
Kavramsal olarak yanlış bir şey yapıyorum ya da yanlış sözdizim var. Lütfen bunu düzeltmeme yardım edin.
Teşekkür ederiz!
IMO, kendi jenerik kodunda türlerini kontrol ediyoruz, o jenerik muhtemelen doğru çözüm değildir senin sorun. –
'typeof (T) == typeof (string)' ifadesi, derleme zamanı değil, çalışma zamanında çözülür. Böylece blokta aşağıdaki satır geçersizdir. –
(T) Dönüştürün.ChangeType (newT1, typeof (T)) – vsapiha