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 關注
- 151 瀏覽
添加回答
舉報