将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);
}
它将ref
放在这些参数上,因为PrivateExecuteReader()
将它们声明为ref
(C#)或ByRef
(VB.NET)。没有选择。
在VB.NET中,您只需传入参数,然后必须查看方法的声明(或Intellisense提示),就可以知道它是通过引用还是通过值。但在C#中,如果一个方法将一个参数声明为ref
,那么您还必须将要传递的参数标记为ref
,这样您就可以明确地理解它是通过引用传递的。
对我来说,这似乎是一个[大部分]正确的转换。