首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在vb.net上调用公共类中的变量?

如何在vb.net上调用公共类中的变量?
EN

Stack Overflow用户
提问于 2011-08-22 16:13:42
回答 3查看 4.1K关注 0票数 0

我有个公共课程

代码语言:javascript
复制
    Public Class commonSettings
        Dim etcString As String = "some string"
    End Class

如何调用etcString并将其完全用于代码?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-22 16:15:08

使用Public修饰符。

http://msdn.microsoft.com/en-us/library/ms973875.aspx#methodscope_topic3

如果您希望能够在没有实例的情况下访问它,也可以使用Shared修饰符。

编辑:代码示例

代码语言:javascript
复制
Public Class commonSettings
    Public Shared etcString As String = "some string"
End Class
票数 1
EN

Stack Overflow用户

发布于 2011-08-22 16:15:59

使其可通过公共财产进入

代码语言:javascript
复制
Public Class commonSettings
    Dim etcString As String = "some string"
    Public Property mETCString(ByVal value as String) As String
         Get
              return etcString
         End Get
         Set(value as String)
              etcString = value
         End Set
    End Property
End Class

或者如果使用VB 10 (VS 2010) -使用自动实现的属性

代码语言:javascript
复制
Public Class commonSettings
    Public Property etcString As String = "some string"
End Class

或使变量可直接访问。

代码语言:javascript
复制
Public Class commonSettings
    Public etcString As String = "some string"
End Class

然而,正如Konrad所提到的,创建一个公共变量并不是最好的主意。这背后的原因如下:

如果更改内部实现,可能会破坏外部dependencies.

  • You,则不能在variable

  • Variables上使用DataBinding更多地被视为实现级别项,而属性则定义对象接口的更多内容。
票数 4
EN

Stack Overflow用户

发布于 2011-08-22 16:24:38

除了msarchet的回答(这可能是这个问题的正确答案-“我如何使成员更少私有”)之外,如果您要寻找的变量是无状态的(这意味着您不需要拥有一个周围类的实例),而且您不希望它是一个共享成员(所以您不需要编写classname.membername),那么您可能正在寻找一个模块。

你做了一个这样的模块:

代码语言:javascript
复制
Module GlobalVars
    Public etcString as String = "Some String"
End Module

然后在程序中的任何地方调用它,只需说

代码语言:javascript
复制
etcString = "New String"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7150358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档