在扩展方法中获取扩展方法的参数

本文关键字:方法 扩展 参数 获取 | 更新日期: 2023-09-27 18:21:39

假设我有方法:

public int Method(string param1, string param2)
{
     return 0;
}

我有扩展方法

public static int Extend(this int mhd, string param1, string param2)
{
     return mhd;
}

我会称之为

int N = Method("param1","param2").Extend("param1","param2");

但有了这个,我不得不定义两次参数。我想知道有没有办法得到这样的扩展方法参数:

public static int Extend(this int mhd)
{
     var params = this.Parameters;
     return mhd;
}

在扩展方法中获取扩展方法的参数

但有了这个,我不得不定义两次参数。我想知道有没有办法得到这样的扩展方法参数:

没有。扩展方法的第一个参数始终是方法所针对的类型。声明中需要此参数,因此如果要传入任何内容,则必须声明第二个参数。


为什么不把所有的代码放在一个方法中呢?


你能颠倒方法的依赖关系吗?换句话说,类似这样的东西:

int N = 0.Extend(Method("param1","param2"));    

或者,类似这样的东西:

public int Method ( int mhd, string one, string two ) {
   // do stuff...
  return mhd.Extend ( one, two );
}