VB到C#可选参数

Bla*_*Sun -3 c# vb.net

我一直在寻找解决方案,但还没有得到一个坚实的答案.我有VB代码,我需要转换为c#.这是VB代码.我尝试了不同的解决方案,但似乎都没有.这是函数的定义

Protected Sub LoadData(ByVal ProcedureName As String, ByVal NumOuts As Long, ByRef Label1 As Label, Optional ByRef Label2 As Label = Nothing, Optional ByRef Label3 As Label = Nothing)

    Dim ConnStr As String

    ConnStr = "Data Source=H50;Initial Catalog=" + Me.DatabaseName.Text + ";Integrated Security=True"
    Dim conn As New SqlConnection(ConnStr).....
Run Code Online (Sandbox Code Playgroud)

这是要求这一点的众多功能之一

Protected Sub LoadtblStaffContactsBtn_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles LoadtblStaffContactsBtn.Click
    LoadData("Load_tblStaffContacts", 2, Me.tblStaffContacts_Label1, Me.tblStaffContacts_Label2)
    Me.LoadtblStudentBtn.Enabled = True
End Sub
Run Code Online (Sandbox Code Playgroud)

Guf*_*ffa 6

您通过引用传递可选参数,这在C#中是不可能的.

除非您实际更改方法中的标签引用(这似乎极不可能),否则这些参数不应该首先通过引用传递.

只需按正常值传递参数,并通过指定值使它们成为可选:

protected void LoadData(string ProcedureName, long NumOuts, Label Label1, Label Label2 = null, Label Label3 = null) {
Run Code Online (Sandbox Code Playgroud)