在 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()
as such
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()
and Increment()
(全局方法)都可以访问修改和获取iCount
value, iCount
无法全局访问,就像模块中私有定义的方法一样。
所以最大的泡菜是这样的:
C# 中与 VB 和 VB.NET 功能等效的代码类型是什么module
?
由于这个简单问题的复杂性,我觉得我应该为“以防万一没有答案”答案强加一个布尔值,如下所示。
如果,没有任何功能等效的东西,那么什么样的聪明
黑客或解决方法(除了使用设置或外部存储
如注册表、数据库、文件等),以实现此目的或
非常非常接近的东西?
您可以使用静态类 https://msdn.microsoft.com/en-us/library/79b3xss3.aspx。您还可以使用静态构造函数 https://msdn.microsoft.com/en-us/library/k9x6w0hc.aspx.
public static class MyStuff
{
//A property
public static string SomeVariable { get; set; }
public static List<string> SomeListOfStuff { get; set; }
//Init your variables in here:
static MyStuff()
{
SomeVariable = "blah";
SomeListOfStuff = new List<string>();
}
public static async Task<string> DoAThing()
{
//Do your async stuff in here
}
}
并像这样访问它:
MyStuff.SomeVariable = "hello";
MyStuff.SomeListOfStuff.Add("another item for the list");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)