2 回答

TA贡献1873条经验 获得超9个赞
你可以......但是,我不确定你应该:
void MustBeOfType<T>(T value)
{
Array array = value as Array;
if (array != null) //It is an array
{
foreach (var arrayItem in array)
{
}
for (int i = 0; i < array.Length; i++)
{
var arrayItem = array.GetValue(i);
}
}
else //It is not an array
{
}
}

TA贡献1841条经验 获得超3个赞
我不确定您要做什么,但通用类型可以是任何东西。您可以使用where子句对泛型类型进行限制,但这取决于您以及功能和上下文。
让我们以列表为例。假设我们在 List 中有 List。然后我们将其定义为:
List<List<string>> myListOfList = new List<List<string>>();
你必须是类型也可以是任何东西(如果你没有对 where 子句施加限制)
MustBeOfType<int[][]>()
MustBeOfType<List<List<string>>>()
MustBeOfType<AnyOtherGenericClass<List<string>>>()
并能够访问它:
class MustBeOfType<T>
{
private T _value;
MustBeofType(T value)
{
_value = value;
}
}
为了能够对 进行操作,您可以使用反射,或者如果您放置了 where 限制并且您的 where 限制具有 Type,那么您可以看到该 Type 的属性。
- 2 回答
- 0 关注
- 131 浏览
添加回答
举报