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

本文关键字:转换 函数 共享 VB NET | 更新日期: 2023-09-27 17:59:00

我使用了一个转换器程序将此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);
}

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

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

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

对我来说,这似乎是一个[大部分]正确的转换。