Bra*_*don 14
将在C#4.0中
现在,您可以重载方法,设置默认值并调用其他方法.或者将其设置为可空.
public void DoSomething(int a)
{
int defaultValue = 1;
DoSomething(a, defaultValue);
}
public void DoSomething(int a, int b)
{
// Do something
}
Run Code Online (Sandbox Code Playgroud)
要么
public void DoSomething(int a, int? b)
{
// Check for b.HasValue and do what you need to do
}
Run Code Online (Sandbox Code Playgroud)
Nol*_*rin 13
直到C#3.0,我担心这是不可能的,至少本身.(见后面的帖子部分.)
随着C#4.0的出现,您可以执行以下操作:
void FooMethod(int foo, string bar = "foobar")
{
Console.WriteLine("{0}, "{1}", foo, bar);
}
Run Code Online (Sandbox Code Playgroud)
给定默认值的任何参数都必须是可选的参数.
可以通过以下方式调用:
FooBar(123"); // Outputs: "123, foobar"
FooBar(123, "hello"); // Outputs: "123, hello"
FooBar(123, bar: "hello"); // Outputs: "123, hello"
Run Code Online (Sandbox Code Playgroud)
在早期版本的C#中,您可能会通过运算符重载实现相同的功能.
void FooMethod(int foo)
{
FooMethod(foo, "foobar");
}
void FooMethod(int foo, string bar)
{
Console.WriteLine("{0}, {1}", foo, bar);
}
Run Code Online (Sandbox Code Playgroud)
注:
这里重要,不要混淆什么一直缺乏对可选参数的支持..NET框架(CLR/CIL语言)已经支持它们一段时间了(总是可能的),VB.NET语言使用它.然而,只有C#4.0,C#才能使用该功能.
它可以在.NET 4.0版本中使用.早期版本不提供此功能.
| 归档时间: |
|
| 查看次数: |
1907 次 |
| 最近记录: |