从另一个命名空间获取变量不起作用

本文关键字:变量 不起作用 获取 命名空间 另一个 | 更新日期: 2023-09-27 18:21:24

我正在尝试从另一个命名空间获取变量(string)。我尝试了许多可能性,但没有一个成功。

namespace CPLoader
{
    public class dbC
    {
        public string _CS { get; set; }
    }
}

如果我MessageBox"_CS",它总是空的。我没有错误,设置了对CPLoader的引用。。。

我这样设置它的值:

namespace CP
{
    public class dbMain
    {
        private void MyMethod()
        {
            ... do work ...
            CPLoader.dbC._CS = Mystring;
        }
    }
}

为什么不起作用?

从另一个命名空间获取变量不起作用

通常,变量不单独存在于一个命名空间中,它们存在于另一个类中,该类可能位于另一个命名空间。如果您需要访问另一个类(在另一个命名空间中)中的变量,那么您的其他类需要以某种方式公开该变量。通常的做法是为变量使用公共属性(如果您只需要访问该变量,则为静态属性)。

namespace My.Namespace
{
    public class MyClassA
    {
        public void MyMethod()
        {
            // Use value from MyOtherClass
            int myValue = My.Some.Namespace.MyClassB.MyInt;
        }
    }
}
namespace My.Some.Namespace
{
    public class MyClassB
    {
        private static int myInt;
        public static int MyInt
        {
            get {return myInt;}
            set {myInt = value;}
        }
        // Can also do this in C#3.0
        public static int MyOtherInt {get;set;}
    }
}

访问变量的方式需要使其成为静态变量。

namespace CPLoader
{
    public class dbC
    {
        public static string _CS { get; set; }
    }
}