我在将匿名对象作为方法中的参数传递时遇到问题。我想像在 JavaScript 中一样传递对象。例子:
function Test(obj) {
return obj.txt;
}
console.log(Test({ txt: "test"}));
但是在 C# 中,它会抛出许多异常:
class Test
{
public static string TestMethod(IEnumerable<dynamic> obj)
{
return obj.txt;
}
}
Console.WriteLine(Test.TestMethod(new { txt = "test" }));
例外:
- 参数 1:无法从 'AnonymousType#1' 转换为 'System.Collections.Generic.IEnumerable'
- 'ConsoleApplication1.Test.TestMethod(System.Collections.Generic.IEnumerable)' 的最佳重载方法匹配有一些无效参数
- “System.Collections.Generic.IEnumerable”不包含“txt”的定义,并且找不到接受“System.Collections.Generic.IEnumerable”类型的第一个参数的扩展方法“txt”(您是否缺少 using 指令还是汇编参考?)