从另一个命名空间获取变量不起作用
本文关键字:变量 不起作用 获取 命名空间 另一个 | 更新日期: 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; }
}
}