加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#等效于VB’模块’

发布时间:2020-12-16 00:25:28 所属栏目:百科 来源:网络整理
导读:在Visual Basic中,您可以使用模块作为存储“松散”代码的位置,该代码可以是可以从应用程序中的其他位置访问的方法和变量,而无需先初始化某些内容,并且可以设置或更改变量状态.继续保持这个价值. 我发现的最接近的是C#中的静态方法作为公共类的一部分,但是它
在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不能全局访问,就像模块中私有定义的方法一样.

所以大泡菜是这样的:

What is the functionally equivalent code type in C# to VB & VB.NET’s
module ?

由于这个简单问题的复杂性,我觉得我应该为“以防万一没有答案”的答案强加一个布尔值,如下所示.

If,there is nothing functionally equivalent,then what sort of clever
hack or workaround (aside from using settings,or external storage
like the registry,database,files,etc),to make this happen or
something VERY very close ?

解决方法

您可以使用 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");

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读