我正在尝试从另一个命名空间获取变量(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;
}
}
}
为什么这不起作用?
答案 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; }
}
}