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

達(dá)令說
TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個(gè)贊
首先嘗試訪問該值,然后確定類型。
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)驗(yàn) 獲得超7個(gè)贊
Object
是這里的真實(shí)類型。您可以將 C# 中的 dynamic
視為具有特殊行為的對象,其中成員綁定發(fā)生在運(yùn)行時(shí)而不是編譯時(shí)。對于大多數(shù)類型來說,這就像反射的捷徑。
- 2 回答
- 0 關(guān)注
- 251 瀏覽
添加回答
舉報(bào)
0/150
提交
取消