【发布时间】:2018-11-22 15:01:12
【问题描述】:
这是我的代码, 我正在尝试但失败了。 T 采用任何类型的 DataType、Class 或 Generic 类。基于类型在类型中赋值。
public T ToObject<T>()
{
//T is : int,int?,string,float,decimal
if (typeof(T).IsValueType)
{
//TO DO : Return Value Type
}
//T is Generic List<User>
if (typeof(T).IsGenericType)
{
//TO DO : Return List of Object
}
else
{
//T is User
//TO DO : Return Object
}
return default(T);
}
【问题讨论】:
-
你所说的“失败”是什么意思?我们需要更多细节。
-
泛型代码的目的是generic。如果您正在检查类型并分支到特定于类型的代码,那么您可能根本不使用泛型。事实上,我觉得这个问题太模糊了,看不出你实际上想在这里实现什么。
-
@Damien_The_Unbeliever 写了很多次代码,就像他写的一样。你不能简单地重载泛型的限制,也没有我想使用的所有限制。
-
说实话,我不太明白这个方法的目的,你在那些分支中究竟会做什么?
-
@LasseVågsætherKarlsen 我有 DataTable 并且基于类型我想返回值,例如:1. 如果类型是 int、string、decimal 等然后从 Table.row[0][ 0], 2. 如果 Type 是类对象,则从第一行获取值, 3. 如果 Type 是 List,则返回 List
标签: c# string generics types int