我想從另一個類調用非靜態變量。如果我將其設爲靜態,它會影響我的其他代碼。從另一個類調用非靜態變量
我有兩個類Harvest_Client和Harvest_Project。
在我Harvest_Project類我已經
public int _client_id{ get; set;}
I'just想要做Harvest_Client類,
public int _id = Harvest_Project._client_id;
我應該怎麼做呢?
我想從另一個類調用非靜態變量。如果我將其設爲靜態,它會影響我的其他代碼。從另一個類調用非靜態變量
我有兩個類Harvest_Client和Harvest_Project。
在我Harvest_Project類我已經
public int _client_id{ get; set;}
I'just想要做Harvest_Client類,
public int _id = Harvest_Project._client_id;
我應該怎麼做呢?
首先,你應該重命名屬性(它不是一個變量)與.NET命名約定,如符合
public int ClientId { get; set; }
接下來,你需要一個實例HarvestProject
(-更名後)的。不要只是創建一個新的 - 你需要的權情況下,它的客戶端ID你有興趣在一個我們不能告訴你它是哪一個 - 但如果你不已經有實例HarvestProject
,您應該計算出您希望如何指定您想要的客戶端ID。
認爲它是這樣的:如果我問你「多大了?是一個人」你當然想知道其中我正在談論的人。這裏完全一樣。
+1爲特殊問題解密技巧。 – 2013-07-04 12:17:39
也許經過參照班會做你需要的東西:
public class Harvest_Project
{
public string Name { get; set; }
public int clientId { get; set; }
}
public class Harvest_Client
{
private Harvest_Project MyInstance;
private int myid;
public int MyId
{
get
{
return myid;
}
private set
{
MyId = value;
}
}
public Harvest_Client(Harvest_Project cls)
{
MyInstance = cls;
MyId = cls.clientId;//since class reference present no
//need for the property.
//its just here to show if in your
//project you really just need ID
//in this example its redundant
}
}
取決於你正在嘗試做的,你可以讓Harvest_Project對象或更好的字典的名單,如果有各種類型的「項目」,他們可以全部放入根據指定鍵進行編目的詞典中。
有一刻我想推薦考慮下面的屬性聲明public int ClientId {get; private set;"}
它允許你禁止從第三方代碼設置這個變量,如果你真的需要這個。否則,你將有普通的全局變量
實例化該類並訪問其getter方法! – NINCOMPOOP
你的命名非常不標準。 Propeties從首都開始,而不是以'_' –