c#中的可选参数

Aru*_*rul 4 c# c#-4.0

我在以下代码中使用可选参数.但是显示错误"不允许使用默认参数说明符"任何人都帮助我先生.

public void getno(int pvalu, string pname = "")
{

}
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 25

看起来在某些答案中有一些错误的信息:

  • 可选参数已引入C#4,因此您必须使用C#4编译器
  • 可选参数永远存在于框架中,因此您可以定位任何版本的框架并仍然使用它们,只要您使用C#4编译器即可.使用C#4编译器将.NET 2作为目标是完全合理的,然后从VB8引用您的库的人仍然可以使用您的可选参数.

正如其他人所指出的,过载是,如果你不使用C#4,如果你想你的代码中使用可选参数替代消耗由早期的C#代码.(如果您使用C#4,但随后一些C#3代码需要调用到它,那些可选参数有效地去尽可能的代码是有关需要建立一个库).

(顺便说一句,我会认真考虑你的名字......我知道这只是示例代码,但像"P"一般来说前缀参数气馁,因为习惯问题,同样方法一般帕斯卡 - 套管).


Adr*_*der 7

尝试重载该方法

    public void getno(int pvalu)
    {
        getno(pvalu, "");
    }

    public void getno(int pvalu, string pname)
    {

    }
Run Code Online (Sandbox Code Playgroud)

查看方法使用指南

另请参见.Net 4 命名和可选参数(C#编程指南)