小编Cod*_*tig的帖子

使用params string []和继承的重载方法时的怪癖

我有一个这样的课

public class Child
{
    public string ToXml()
    {
        return "Child : ToXml()";
    }

    public string ToXml( params string[] fields )
    {
        return "Child : ToXml(...)";
    }
}
Run Code Online (Sandbox Code Playgroud)

创建类Child的实例并调用ToXml()返回第一个重载的函数,该函数很好并且花花公子.

var obj = new Child();
Console.WriteLine( obj.ToXml() );
Run Code Online (Sandbox Code Playgroud)

输出:

Child : ToXml()
Run Code Online (Sandbox Code Playgroud)

但是当我添加一个Parent类并将Child类更改为:

public class Parent
{
    public virtual string ToXml()
    {
        return "Parent : ToXml()";
    }
}

public class Child : Parent
{
    public override string ToXml()
    {
        return "Child : ToXml()";
    }

    public string ToXml( params string[] fields ) …
Run Code Online (Sandbox Code Playgroud)

c#

4
推荐指数
1
解决办法
261
查看次数

标签 统计

c# ×1