【发布时间】:2015-06-16 14:26:16
【问题描述】:
在 Visual Basic 中,您可以将模块用作存储“松散”代码的地方,这些代码可以是可从应用程序的其他地方访问的方法和变量,而无需先初始化某些内容,并且可以设置变量状态或已更改并将始终保持该值。
我发现的最接近的方法是 C# 中的静态方法作为公共类的一部分,但是这具有不能全局访问的变量的缺点,或者如果将变量设为静态,则可以在内部设置/获取。
以VB中的以下简单代码存储在空白模块中为例。
Private iCount as Integer = 0
Public Sub Increment()
iCount = iCount + 1
End Sub
Public CheckModulus() As Boolean
If iCount % 6 == 0 Then
Return True
Else
Return False
End If
End Sub
现在,您有一个类,然后您可以从该类调用CheckModulus()
Public Class Fruits
Public Static Function ExactBunches() As String
If CheckModulus() Then
Return "You have an exact amount of bunches"
Else
Return "You need more fruits to make a bunch"
End If
End Function
End Class
现在我意识到,你可以将 iCount 移动到“设置”,并在应用程序启动时将其重置,等等,但请记住,这是一个非常简单的例子来说明能够方便有一套全局代码。过去我发现这最有用的地方是在创建用户控件或自定义类时。此外,其目的不是让所有东西都可以全局访问,而是让某些方法和变量可以全局访问,而其他的只能从模块内访问。例如,虽然CheckModulus() 和Increment()(全局方法)都有权修改和获取iCount 值,但iCount 不能全局访问,就像在模块中使用私有定义的方法一样。
所以大泡菜是这样的:
C# 中与 VB 和 VB.NET 的功能等效的代码类型是什么
module?
由于这个简单问题的复杂性,我觉得我应该为“以防万一没有答案”的答案强加一个布尔值,如下所示。
如果,没有什么功能等价的,那么什么样的聪明 hack 或解决方法(除了使用设置或外部存储 像注册表,数据库,文件等),以实现这一点或 非常接近的东西?
【问题讨论】:
-
您可以使用static class。
-
我在使用静态类时遇到的问题是可访问性级别。
-
我现在很困惑。 “可预定义”是什么意思?另外,为什么要让变量保持不变!?
-
@SanuelJackson 你可以初始化它,看我的回答。
标签: c# vb.net module equivalent