c# - 在 C# 中将匿名对象作为参数传递

标签 c# object dynamic ienumerable anonymous

我在将匿名对象作为参数传递给方法时遇到问题。我想像在 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" }));

异常(exception)情况:

  1. 参数 1:无法从“AnonymousType#1”转换为 'System.Collections.Generic.IEnumerable'
  2. 最佳重载方法匹配 'ConsoleApplication1.Test.TestMethod(System.Collections.Generic.IEnumerable)' 有一些无效的参数
  3. “System.Collections.Generic.IEnumerable”不包含 'txt' 的定义并且没有扩展方法 'txt' 接受第一个 “System.Collections.Generic.IEnumerable”类型的参数 可以找到(你是否缺少 using 指令或程序集 引用资料?)

最佳答案

看起来你想要:

class Test
{
    public static string TestMethod(dynamic obj)
    {
        return obj.txt;
    }
}

您在使用它时就好像它是一个单一的值,而不是一个序列。你真的想要一个序列吗?

关于c# - 在 C# 中将匿名对象作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10822092/

相关文章:

c# - 在不从前端发送 HTTP 请求的情况下获取 session 状态

javascript - 无法访问对象文字内的 "this"

javascript - JavaScript 对象的性能相关问题

c# - ASPX 页面的类似 SlowChetah 的转换?

c# - 条件异或?

c# - 在遍历列表时将项目添加到列表是否安全

c# - Oracle 的多个结果集

javascript - JS - 在函数中覆盖 'this'

jquery - 如果超过特定窗口大小,则交换 div 背景

C#动态类属性问题