Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 正在尝试将可选转换为C#_C# 4.0_Vb.net To C# - Fatal编程技术网

C# 4.0 正在尝试将可选转换为C#

C# 4.0 正在尝试将可选转换为C#,c#-4.0,vb.net-to-c#,C# 4.0,Vb.net To C#,我试图将come vb.net代码转换为C#,但在其中一个函数中遇到了可选 Private Function doOpenConnection(ByRef cn As OleDb.OleDbConnection, ByRef cmd As OleDb.OleDbCommand, ByVal sConnString As String, Optional ByVal sUSP As String = "") As Boolean 似乎VB.Net没有使用重载,而是可以选择将其创建为一个方法/函数

我试图将come vb.net代码转换为C#,但在其中一个函数中遇到了可选

Private Function doOpenConnection(ByRef cn As OleDb.OleDbConnection, ByRef cmd As OleDb.OleDbCommand, ByVal sConnString As String, Optional ByVal sUSP As String = "") As Boolean
似乎VB.Net没有使用重载,而是可以选择将其创建为一个方法/函数。C#是否有类似的等价物,或者我必须为每种可能性创建一个方法?

C#与C#4有一个等价物:

请注意,这里的前两个参数可能不需要
ref
,了解这一点很重要

C#4既有命名参数,也有可选参数。有关更多信息,请参阅。请注意,有各种限制,可选参数必须位于必需参数之前(参数数组除外),默认值必须是常量(或者可以使用
default(…)
运算符)。

可以在C#中使用

来自MSDN:

每个可选参数都有一个默认值作为其定义的一部分。如果没有为该参数发送参数,则使用默认值。默认值必须是以下表达式类型之一:

  • 恒定的表达式

  • 形式为new ValType()的表达式,其中ValType是值类型,如枚举或结构

  • 默认形式的表达式(ValType),其中ValType是值类型

可选参数在参数列表的末尾定义,位于任何必需参数之后。如果调用方为一系列可选参数中的任何一个提供参数,则它必须为前面的所有可选参数提供参数。参数列表中不支持逗号分隔的间隙。例如,在下面的代码中,使用一个必需参数和两个可选参数定义实例方法ExampleMethod


是的,最初的程序员在他的VB代码中有它。我只是想把它转换成c。谢谢你的链接
private bool doOpenConnection(ref OleDb.OleDbConnection cn,
                              ref OleDb.OleDbCommand cmd,
                              string sConnString,
                              string sUSP = "")
    public void ExampleMethod(int required, string optionalstr = "default string",
        int optionalint = 10)
    {
        Console.WriteLine("{0}: {1}, {2}, and {3}.", _name, required, optionalstr,
            optionalint);
    }