在C#中,typeof
关键字用于获取一个类型的类型信息。在泛型中,typeof
可以用于获取泛型参数的类型信息,从而在编译时进行类型检查和类型转换。
下面是一个使用typeof
在泛型中的应用示例:
public class GenericClass
{
private readonly T _value;
public GenericClass(T value)
{
_value = https://www.yisu.com/ask/value;"hljs">public T GetValue()
{
return _value;
}
public void SetValue(T value)
{
_value = https://www.yisu.com/ask/value;"hljs">public static void PrintType(U item)
{
Console.WriteLine($"The type of U is: {typeof(U)}");
}
}
class Program
{
static void Main(string[] args)
{
GenericClass intInstance = new GenericClass(42);
GenericClass stringInstance = new GenericClass("Hello, World!");
Console.WriteLine($"The type of T in GenericClass is: {typeof(GenericClass).GetGenericTypeDefinition()}" );
Console.WriteLine($"The type of T in GenericClass is: {typeof(GenericClass).GetGenericTypeDefinition()}" );
GenericClass.PrintType(42); // The type of U is: System.Int32
GenericClass.PrintType("Hello, World!"); // The type of U is: System.String
}
}
在这个示例中,我们定义了一个泛型类GenericClass
,它有一个类型为T
的私有字段_value
。我们还定义了一个静态方法PrintType
,它接受一个类型为U
的参数,并打印出该参数的类型信息。
在Main
方法中,我们创建了两个GenericClass
实例,一个用于int
类型,另一个用于string
类型。然后,我们使用typeof
关键字获取这些实例的类型信息,并将其打印出来。最后,我们调用PrintType
方法,分别传入int
和string
类型的参数,以展示如何使用typeof
在泛型中获取类型信息。