0

我正在尝试(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;
        }
    }
}

为什么这不起作用?

4

2 回答 2

0

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

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;}
    }
}
于 2013-07-05T13:26:25.633 回答
0

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

namespace CPLoader
{
    public class dbC
    {
        public static string _CS { get; set; }
    }
}
于 2013-07-05T13:38:03.013 回答