Gibi bir yöntem imzam varsa
public string myMethod<T>( ... )
Yöntemin içinde, tür bağımsız değişkeni olarak verilen türün adını nasıl alabilirim? Buna benzer bir şey yapmak isterdim typeof(T).FullNameama bu aslında işe yarıyor ...
Gibi bir yöntem imzam varsa
public string myMethod<T>( ... )
Yöntemin içinde, tür bağımsız değişkeni olarak verilen türün adını nasıl alabilirim? Buna benzer bir şey yapmak isterdim typeof(T).FullNameama bu aslında işe yarıyor ...
Yanıtlar:
Kodunuz çalışmalıdır. typeof(T).FullNametamamen geçerlidir. Bu, tamamen derleyen, işleyen bir programdır:
using System;
class Program
{
public static string MyMethod<T>()
{
return typeof(T).FullName;
}
static void Main(string[] args)
{
Console.WriteLine(MyMethod<int>());
Console.ReadKey();
}
}
Yukarıdaki baskıları çalıştırmak (beklendiği gibi):
System.Int32
<int?>" Eğer öyleyse, işe yarıyor, ama elde edersiniz System.Nullable<int>(tam ad sözdiziminde), ki bu beklediğiniz şeydir ...
nameof(T)ve typeof(T).Nameaynı şeyi yapardı. Dışarı dönüşler nameof(T)sadece getiri T.
typeof(T).Nameve typeof(T).FullNamebenim için çalışıyor. Bir argüman olarak iletilen türü alıyorum.
Kullanılabilir bir T örneğiniz olduğunu varsayarsak, diğer türlerden farklı değildir.
var t = new T();
var name = t.GetType().FullName;
typeof(T).FullNamegerektiğini çalışır. Bunun yerine ne oluyor?