我试图从另一个名称空间/类中设置/读取类bluRemote中的变量,如下所示:
namespace BluMote
{
class bluRemote
{
public string cableOrSat = "CABLE";
........
}
}
和其他cs文件(表格):
namespace BluMote
{
public partial class SettingsForm : Form
{
if (BluMote.bluRemote.cableOrSat == "CABLE")
{
BluMote.bluRemote.cableOrSat = "SAT";
}
.......
}
}
我知道我做错了但是我更习惯在VB中做这样的事情,所以它像黑夜一样ha:o)
答案 0 :(得分:2)
您要做的是使用静态变量,因此您需要将类更改为:
namespace BluMote
{
public static class bluRemote
{
public static string cableOrSat = "CABLE";
........
}
}
最好远离静态类(大多数情况下),而是专注于面向对象的方法,其中有一个bluRemote实例(对象)。
因此,不要将bluRemote类设为静态,而是将其保持不变并执行:
public partial class SettingsForm : Form
{
private bluRemote _remote = new bluRemote(); // possibly created somewhere else
public void SomeFunction()
{
if (_remote.cableOrSat == "CABLE")
{
_remote.cableOrSat = "SAT";
}
}
.......
}
答案 1 :(得分:2)
您正在尝试访问实例变量 - 即每个对象具有可能不同的值 - 仅通过 class 名称。这仅适用于静态变量。
您需要bluRemote
的实例,并询问 的值。但是,我强烈建议:
另请注意,此处只有一个命名空间 - BluMote
。您的两个类都在该命名空间中声明。
答案 2 :(得分:1)
当您声明cableOrSat
字段时,您需要在bluRemote
类的实例上设置它,但是您尝试使用类本身的名称来设置它。
如果您将cableOrSat
字段声明为:
public static string cableOrSat = "CABLE";
您将能够通过类名本身访问它。