即使有更具体的方法,也会调用带有“ params”的方法

我有两种方法,一种带有参数,另一种没有参数。如果我在未指定任何参数的情况下调用该方法,则它的参数将完全相同。

采用以下示例:

public abstract class A<T>
{
  public virtual T Get(int idEntity)
  {
    return this.DefaultRepository.Get(idEntity);
  }
}

public class B<T> : A<T>
{
  public override T Get(int idEntity)
  {
    this.DoSomeValidation();
    var t = this.GetTheEntity();
    return t;
  }

  public T Get(int idEntity,params sbyte[] accessModifiers)
  {
    this.DoOtherValidations(accessModifiers);
    var t = this.GetTheEntity();
    return t;
  }
}

如果我在另一堂课中这样做:

public class Someclass
{
  public void SomeMethod(int idT)
  {
    var x = new B();
    var t = B.Get(idT);
  }
}

然后调用方法public T Get(int idEntity,params sbyte[] accessModifiers),而不是public override T Get(int idEntity)。我期望后者被称为,它比前者更具体,因为我没有指定任何“参数”。这是为什么?非常感谢。

kimle 回答:即使有更具体的方法,也会调用带有“ params”的方法

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2813486.html

大家都在问