{ Console.Writ-6ren">
gpt4 book ai didi

c# - 匿名类型的匿名方法未被授权?

转载 作者:行者123 更新时间:2023-11-30 14:31:09 25 4
gpt4 key购买 nike

我尝试创建这样的调用,它在 javascript 中运行良好:

service.DoAction(new { param1="sometext", onOk= () => { Console.WriteLine("ok"); }});

但它没有编译错误:

Can not assign 'anonymous method' to anonymous type property

Can not assign 'lambda expression' to anonymous type property

知道为什么这没有被授权吗?语言限制?

最佳答案

lambda 的想法是,它无法在没有上下文的情况下知道代表匿名方法的委托(delegate)类型。它需要分配给具有已知委托(delegate)类型的对象,以便可以推断出委托(delegate)的类型。

匿名类型属性还需要根据您分配给它的内容推断其类型。他们每个人都试图从彼此推断类型,并且从未在任何地方指定。

您需要明确指出要用于编译的委托(delegate)类型:

var foo = new
{
hi = "Hi!",
doSomething = new Action(() => Console.WriteLine("Done!"))
};

关于c# - 匿名类型的匿名方法未被授权?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21024439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com