让老C#代码支持可选参数的方法
通过2个Attribute让老C#代码支持可选参数。
C#是从 C# 4.0(随着 .NET Framework 4和VS 2010)开始支持可选参数的。具体来说,就是可以用C#写如下的代码:
1 | public int Add(int a, int b = 5) |
在这之前,通常是使用方法重载来达到相同目的:
1 | public int Add(int a, int b) |
实际上,我们完全可以通过2个Attribute来达到可选参数的目的。这2个Attribute存在于System.Runtime.InteropServices命名空间,分别为:
OptionalAttributeDefaultParameterValueAttribute
代码看起来是这样:
1 | public int Add(int a, [Optional][DefaultParameterValue(5)]int b) |
这2个Attribute自 .NET Framework 1.1时代就有了,惭愧我现在才知道……