13

我正在使用一种方法来执行某些操作,我希望通过在 C# 中使用可选参数只编写一次该方法,除了方法重载之外还有其他方法吗?

4

5 回答 5

39

Visual Studio 2010 的新功能

命名参数和可选参数

例如

public void ExampleMethod(int required, string optionalstr = "default string",
int optionalint = 10)
{
}
于 2011-02-25T11:28:04.433 回答
14

看看下面的代码

使用的图书馆

using System.Runtime.InteropServices;

函数声明

private void SampleFunction([Optional]string optionalVar, string strVar)
{
}

在调用函数时,您可以这样做

SampleFunction(optionalVar: "someValue","otherValue");

或者

SampleFunction("otherValue");

如果有帮助请回复!:)

于 2012-11-06T06:35:04.120 回答
9

是的,使用可选参数(在 C# 4 中引入)。

public void ExampleMethod(int required, string optionalstr = "default string",
    int optionalint = 10)

当您为形式参数提供默认值时,它变为可选的。

对于以前的版本,重载是唯一的选择。

于 2011-02-25T11:26:38.360 回答
4

它们已在 C# 2010 中引入(通常是带有 Framework 4.0 的 VS2010)。请参阅命名和可选参数(C# 编程指南)

在以前的 C# 版本中,您会遇到重载(或参数数组)。

于 2011-02-25T11:26:33.673 回答
2

如果您使用C# 4.0,它是。

然后,您可以像这样定义您的方法:

public void Foo( int a = 3, int b = 5 ){
  //at this point, if the method was called without parameters, a will be 3 and b will be 5.
}
于 2011-02-25T11:27:12.970 回答