方法“继承”其他方法参数

时间:2016-06-13 20:51:12

标签: c# methods parameters parameter-passing

我想知道c#是否提供任何方法使方法“继承”它们的参数并允许使用它们而不是仅仅将参数列表再次传递给第二种方法。以下是它可能的工作原理:

 void Method1(string p1, int p2, bool p3)
{
    string result = Method2(p1,p2,p3);
}
string Method2():Method1()
{
  if(p3)
    {
      return p1 + p2.ToString();
    }
  else
    {
        return null;
    }

}

而不是

    void Method1(string p1, int p2, bool p3)
{
    string result = Method2(p1,p2,p3);
}
string Method2(string p1, int p2, bool p3)
{
  if(p3)
    {
      return p1 + p2.ToString();
    }
  else
    {
        return null;
    }
}

不确定它是否真的有意义,但我很好奇是否有可能。如果没有,您是否有任何解决方法,以避免将这些参数重写为Method2()?

2 个答案:

答案 0 :(得分:1)

不,没有这样的构造存在,甚至它会在那里继承方法参数没有意义。在最大值,在第二种方法中,您可以将它们设为可选参数

 void Method1(string p1, int p2, bool p3)
{
    string result = Method2(p1,p2,p3);
}

string Method2(string p1 = null, int p2 = 10, bool p3 = false)
{

答案 1 :(得分:0)

不,你不能继承参数。问题是你有很多方法使用相同的签名都传递相同的参数集,并且你不想在进行更改时必须全部维护它们吗?
如果你有一个"实体"当我们通常会创建一个类时,你会传递多个值。

R

这也消除了对可选/默认参数的需要。