如果我嘗試List<dynamic> list = new List<dynamic> { "blah" };
var type = list.GetType().GetGenericArguments()[0];我得到“對象”;而不是 string。如何獲得“真實”的體驗?輸入?
2 回答

達(dá)令說
TA貢獻(xiàn)1821條經(jīng)驗 獲得超6個贊
首先嘗試訪問該值,然后確定類型。
List<dynamic> list = new List<dynamic> { "blah", 15 };
var type = list[0].GetType();
Console.WriteLine(type); // prints out System.String
type = list[1].GetType();
Console.WriteLine(type); // prints out System.Int32
如果您想要所有類型的列表,請使用 Linq:
var types = list.Select(item => item.GetType());
// print out
foreach (var t in types) {
Console.WriteLine(t);
}

楊__羊羊
TA貢獻(xiàn)1943條經(jīng)驗 獲得超7個贊
Object
是這里的真實類型。您可以將 C# 中的 dynamic
視為具有特殊行為的對象,其中成員綁定發(fā)生在運(yùn)行時而不是編譯時。對于大多數(shù)類型來說,這就像反射的捷徑。
- 2 回答
- 0 關(guān)注
- 227 瀏覽
添加回答
舉報
0/150
提交
取消