gpt4 book ai didi

c# - C#4.0中如何调用动态类型的静态方法?

转载 作者:可可西里 更新时间:2023-11-01 08:03:04 27 4
gpt4 key购买 nike

在C#4.0中,我们有了动态类型,但是如何调用动态类型对象的静态方法呢?

下面的代码会在运行时产生异常。 dynamic 对象来自 C# 类,但它可以通过 DLR 来自其他语言的对象。重点不是如何调用静态方法,而是如何调用无法在 C# 代码中创建的动态对象的静态方法。

class Foo
{
public static int Sum(int x, int y)
{
return x + y;
}
}

class Program
{

static void Main(string[] args)
{
dynamic d = new Foo();
Console.WriteLine(d.Sum(1, 3));

}
}

恕我直言,dynamic 是为了桥接 C# 和其他编程语言而发明的。还有一些其他语言(例如 Java)允许通过对象而不是类型调用静态方法。

顺便说一句,与 C#3.0 相比,C#4.0 的引入并不那么令人印象深刻。

最佳答案

C# 4 不直接支持这一点,但这篇博文中有一个有趣的解决方法:http://blogs.msdn.com/davidebb/archive/2009/10/23/using-c-dynamic-to-call-static-members.aspx

关于c# - C#4.0中如何调用动态类型的静态方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2825355/

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