gpt4 book ai didi

C#重载问题

转载 作者:行者123 更新时间:2023-11-30 19:03:13 24 4
gpt4 key购买 nike

是否有可能以某种方式实现以下方案:

public interface ISomething
{
void Go(ISpecific specific);

void Go(Object o);
}

这样在每次 Go(ISpecific) 调用时都会调用第一个重载,对于任何其他可能的对象的调用,该类将回退 Go(Object) 实现?

最佳答案

这就是默认情况下的工作方式 - 但使用编译时类型。如果你有 Go(foo) 并且 foo 的编译时类型没有实现 ISpecific,它会调用第二个方法,即使foo 在执行时引用的对象实现了 ISpecific。如果您希望在执行时动态地做出这个决定,并且如果您使用的是 C# 4,您可以这样写:

dynamic value = GetValue();
something.Go(value);

...并且在执行时,将选择正确的重载。

关于C#重载问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5805492/

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