我想編寫一個行爲像一個值類型的'Date'類。 例如,而不是寫安全設置屬性的克隆方法,使Date類按值傳遞:爲什麼System.String會像一個值類型? (如何寫值類型類如字符串?)
public Date Birthday
{
get { return this.birthday; }
set
{
this.birthday = value.Clone();
} //I want to write this.birthday = value;
//without changing external value when this.Birthday changes
}
我知道這是可能的,因爲System.String是一類,並且表現得像一個值。例如:
String s1 = "Hello";
String s2 = "Hi";
s1 = s2;
s2="Hello";
Console.WriteLine(s1); //Prints 'Hi'
首先我認爲這個類重寫「=」操作的作家,但現在我知道,「=」經營者不能被重寫。那麼他們怎麼寫String類?
編輯:我只是想讓我的Date類按值傳遞它的實例,就像String一樣。
你用String的例子沒有證明任何東西......結果對所有類型,參考或值都是一樣的 – 2010-05-25 12:01:27
@Thomas Levesque - 我認爲這是不正確的。如果S1和S2是類,那麼輸出將是「你好」。 – 2010-05-25 12:16:24
@Thomas Levesque:不!我測試它。它打印'嗨'。和System.String是一個類(我在對象瀏覽器中查找)... – 2010-05-25 12:20:16