[英]Access variable from other namespaces
我正在嘗試從另一個名稱空間/類設置/讀取類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中做這樣的事情,所以它就像黑夜一樣:o)
您想要做的是使用靜態變量,因此您需要將類更改為:
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";
}
}
.......
}
您正在嘗試僅通過類名訪問實例變量(即,每個對象具有可能不同的值的實例變量)。 這僅適用於靜態變量。
你需要有一個實例 bluRemote
, 並要求其價值。 但是,我強烈建議:
還要注意,這里只有一個名稱空間BluMote
。 您的兩個類都在該命名空間中聲明。
聲明cableOrSat
字段后,需要在bluRemote
類的實例上進行設置,但是您嘗試使用類本身的名稱進行設置。
如果將cableOrSat
字段聲明為:
public static string cableOrSat = "CABLE";
您將可以通過類名本身訪問它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.