我正在将VB.net库转换为C#,并且无法找到与VB.Net公共模块等效的C#。
在同一个VB类中是With块。任何想法也可能是什么。
TIA 史蒂夫坎波斯
答案 0 :(得分:4)
不幸的是,在C#中没有相应的VB.Net模块。最接近的是静态类。两者都定义了一个对象,该对象不能具有实例成员,但它们具有不同的语义。对于VB.Net来说,最大的是,如果模块在范围内,则可以无限制地访问其成员
Module Example
Public Function Sum(x as Integer, y As Integer) As Integer
return x + y
End Function
End Module
Class C1
Sub Method1()
Dim x = Sum(13,42)
End Sub
Class
C#没有此功能,需要对静态类成员进行限定访问。
还有其他一些较小的差异
答案 1 :(得分:3)
没有等效的With
。
根据版本的不同,您可以:
var myCommand = new SqlCommand(SpMainInsert, myConnection) {
CommandType = System.Data.CommandType.StoredProcedure
};
这是在VB.NET项目中创建Module
(模块模板项)时基于默认声明的正确定义。无论是否需要,私有构造函数都是声明的一部分。这个C#“模块定义”取自多年前的Microsoft资源。我现在没有参考来源,但会尝试稍后发布。
internal { sealed | static } class Module1 {
#if sealed
private Module1() { }
#endif
public static void Method1() { }
public static string Method2() { return "here"; }
}
Module1.Method1();
string foo = Module1.Method2();