我想如果我可以做一個引用,總是指向該特定變量,而不是指向該變量當前表示的對象(或更準確地說是內存位置)。參考變量,而不是對象
舉一個例子,假設我有以下程序,我想創建一個對MyClass a的引用,以便始終返回MyClass a中的任何值,即使該值發生更改。我有一些看起來像的代碼。
class MyClass
{
public int value = 0;
}
class Program
{
static MyClass saved; //maintained and used by the following two functions
static void StoreReference(MyClass input)
{
saved = input;
}
static void SetValue()
{
saved.value = 42;
}
static void Main(string[] args)
{
//A couple arbitrary classes I'd like to have references to
MyClass a = new MyClass();
MyClass b = new MyClass();
StoreReference(a);
a = b;
SetValue();
Console.Write(a.value); //should print 42, instead prints 0 since it reads in the original object a was set to
}
}
是否有任何可以在C#做到這一點,或者任何可以防止被分配給一個新的存儲位置的變量(以使上面的代碼將在返回錯誤= b)的?
,你可以將它定義爲只讀 – dotctor
做你試着做StoreReference(REF MyClass的輸入) –
用只讀的問題是,我希望能夠說a.value中= 42而不是=新MyClass的()因爲第二個示例更改了指向的內存位置。 – user3875080