C#等效于VB’模块’
在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移动到’设置’,并在应用程序启动等时重置它,但请记住这是一个非常简单的例子来说明能够有一套的便利性全球代码.我发现这在过去最有用的地方是创建UserControls或自定义类.此外,目的不是使所有内容都可以全局访问,而是让某些方法和变量可以全局访问,而其他方法和变量只能从模块中访问.例如,虽然CheckModulus()和Increment()(全局方法)都有权修改和获取iCount值,但iCount不能全局访问,就像模块中私有定义的方法一样. 所以大泡菜是这样的:
由于这个简单问题的复杂性,我觉得我应该为“以防万一没有答案”的答案强加一个布尔值,如下所示.
解决方法
您可以使用
static class.您也可以使用
static constructor初始化它们.
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"); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |