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

时间:2011-06-14 02:58:34

标签: 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

我不熟悉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);
}

1 个答案:

答案 0 :(得分:5)

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

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

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