将VB.NET共享函数转换为C#

Pos*_*Guy 3 c#

我使用转换器程序将此vb转换为C#

Public Overloads Shared Function ExecuteReader(ByVal statement As String, ByVal commandType As CommandType, _
    ByVal paramCollection As ArrayList, ByVal connectionDelegate As OpenDatabaseConnection, _
    ByVal outputConnectionObject As IDbConnection, ByVal CommandTimeout As Int16) As InstantASP.Common.Data.IDataReader

Return PrivateExecuteReader(Configuration.AppSettings.DataProvider, _
    statement, commandType, paramCollection, connectionDelegate, outputConnectionObject, CommandTimeout)

End Function
Run Code Online (Sandbox Code Playgroud)

我不熟悉VB.NET,我不知道为什么这个转换器将它转换为带有所有这些引用的C#.我甚至根本不使用ref,并且不认为这是转换它的最好/最干净的方法.但是我无法理解所有这些,包括转换,如果在转换后这有任何意义.

public static IDataReader ExecuteReader(string statement, CommandType commandType, ArrayList paramCollection, OpenDatabaseConnection connectionDelegate, IDbConnection outputConnectionObject, Int16 commandTimeout)
{
    return PrivateExecuteReader(ref AppSettings.DataProvider(), ref statement,
        ref commandType, ref paramCollection, ref connectionDelegate,
        ref outputConnectionObject, ref commandTimeout);
}
Run Code Online (Sandbox Code Playgroud)

Joe*_*ant 5

它将ref这些参数放在上面,因为PrivateExecuteReader()它们声明为ref(C#)或ByRef(VB.NET).没有选择.

在VB.NET中,您只需传入您的参数,并且必须查看方法的声明(或Intellisense提示),以了解它是通过引用还是通过值.但是在C#中,如果一个方法将参数声明为ref,那么你还必须标记你传递的参数,ref以便明确表明它是通过引用传递的.

看起来像[大多]正确转换给我.