相关疑难解决方法(0)

C#:将null传递给重载方法 - 调用哪个方法?

假设我有两个C#方法的重载版本:

void Method( TypeA a ) { }
void Method( TypeB b ) { }
Run Code Online (Sandbox Code Playgroud)

我用以下方法调用该方法:

Method( null );
Run Code Online (Sandbox Code Playgroud)

调用该方法的哪个重载?我该怎么做才能确保调用特定的重载?

c# null overloading

34
推荐指数
3
解决办法
6360
查看次数

模糊方法重载

这个问题再次引起了我的兴趣.有人可以提供技术解释,说明为什么以下代码不会产生任何警告或错误.你必须问自己的问题(当然)你感到幸运吗?

class Program
{
    static string Feeling(object o) { return "Lucky"; }
    static string Feeling(string s) { return "Unlucky"; }

    static void Main(string[] args)
    {
        Console.WriteLine("I feel " + Feeling(null));
    }
}
Run Code Online (Sandbox Code Playgroud)

如果您知道在运行代码的情况下将调用哪种方法,则会获得奖励积分.只是为了添加侮辱,它不仅仅发生在null参数:

class Program
{
    static string Feeling(int i) { return "Lucky"; }
    static string Feeling(uint i) { return "Unlucky"; }

    static void Main(string[] args)
    {
        Console.WriteLine("I feel " + Feeling(7));
    }
}
Run Code Online (Sandbox Code Playgroud)

c# overloading

6
推荐指数
1
解决办法
2252
查看次数

标签 统计

c# ×2

overloading ×2

null ×1