[英]Sharing a variable between method overloads?
我是一個真正的新手程序員,我正在嘗試進行重載以共享一個變量。 基本上我想做的是有一個方法,其中一個重載將整數值寫入其中的變量,而另一個重載僅返回該值。
現在我嘗試這樣做:
private int GetQID(int qID)
{
int ID = qID;
}
private int GetQID()
{
return ID;
}
不幸的是,這不起作用,因為第二個重載無法訪問第一個重載的“ ID”變量。 有什么辦法可以不用求助於全局變量嗎?
不,局部變量僅是所討論方法的局部變量。 目前尚不清楚您要實現的目標,但是如果您希望在方法調用之間保持任何狀態,則需要一個字段,並可能將其公開為屬性。
private int id;
public int Id
{
set
{
// Perform some validation?
id = value;
}
get { return id; }
}
如果只需要一個沒有其他邏輯的字段支持的屬性,那么自動實現的屬性將非常有用:
public int Id { get; set; }
不,您不能訪問局部變量。
它們是在方法內部分配的 ,您無法控制在哪里,如何以及何時進行,因為這些決定是由編譯器做出的,因此即使通過骯臟的技巧也無法訪問它們。
關於global variables are evil
,您最好問自己的朋友他的意思(他是正確的,但僅在一定程度上)。 因為必須在許多類中使用屬性和字段,並且如果將每個實例的實例提供給所有人(或者如果它是具有靜態屬性/字段的靜態類,則是單例),那么任何類都可能突然變得全局可用。
在您的需求中,您需要的只是該類的常規屬性 (就像其他人已經回答過的一樣):您可以設置其值並在以后讀取它。 但是,如何使用該類很重要,因為這可能會突然變壞 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.