c#等同于VB6的公共变量

本文关键字:变量 等同于 VB6 | 更新日期: 2023-09-27 18:02:50

假设我的项目包含一个Form和一个class。我想创建一个变量,可以通过窗体类访问。在VB6中,我可以在(模块/类)中创建一个公共变量,并像这样轻松地访问它:

<<p> VB6例子/strong>
[Module code]
Public string_name as string
[/Module code]
[Form Code]
string_name = "test data"
MsgBox(string_name) ' Returns "test data"
[/Form Code]

我如何用c#生成上述功能?我假设我必须创建一个公共类,但我不确定声明公共变量的最佳方式。

谢谢你,艾凡

c#等同于VB6的公共变量

您可以使用公共静态变量创建public static class

public static class MyPublicData
{
    public static string MyData1 = "My public data";
}
使用:

var x = MyPublicData.MyData1;

您可以在c#中做同样的事情(将字段公开为public),尽管这不是良好的实践。

用属性代替:

// public string property
public string string_name { get; set; }
// within class    
string_name = "test data";
MsgBox(string_name); 
// from another class
myClassInstance.string_name = "other test data";
public class MyClass
{
  public int MyPublicVariable;
  public int MyPublicProperty {get; set; }
}

与VB公共(或全局)变量等价的是类的公共静态属性。

必须指定

Classname.PropertyName

尝试使用带有公共静态变量的公共类。例子:

public class PortalResources
    {
        #region Members
        public enum Mode 
        {
            LargeIconMode,
            SmallIconMode, 
            DetailsMode
        };
        public static int LargeIconSize = 150;
        public static int SmallIconSize = 75;
        public static string Name = "Name";
        #endregion
    }

用法:

int IconSize = PortalResources.LargeIconSize;
int ViewMode = PortalResources.Mode.LargeIconMode;

如果您需要该值为常量或静态只读值,则将其放置在静态类中:

public class Globals
{
    public const String value = "Hello World";
}
public static class Globals
{
    public static value2 = "Hello World";
}

如果该值只需要可访问(而不是只读),那么您最好将该值固定在设置文件中并抓取设置