从另一个命名空间获取变量无效

时间:2013-07-05 13:23:19

标签: c# string class variables

我正在尝试从另一个命名空间获取变量(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;
        }
    }
}

为什么这不起作用?

2 个答案:

答案 0 :(得分:0)

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

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;}
    }
}

答案 1 :(得分:0)

您希望访问变量所需的变量,以使其变为静态变量。

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