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).FullName
ama 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).FullName
ama bu aslında işe yarıyor ...
Yanıtlar:
Kodunuz çalışmalıdır. typeof(T).FullName
tamamen 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).Name
aynı şeyi yapardı. Dışarı dönüşler nameof(T)
sadece getiri T
.
typeof(T).Name
ve typeof(T).FullName
benim 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).FullName
gerektiğini çalışır. Bunun yerine ne oluyor?