2009-05-04 75 views
2

有誰知道爲什麼Console.In,Console.Out和Console.Error屬性是隻讀的?人們可能會假設,因爲微軟不打算讓任何人改變它們,但框架包括相關的Console.SetIn(),Console.SetOut()和Console.SetError()方法。爲什麼Console.Console.Out&Console.Error屬性只讀?

有沒有一個合理的理由或者只是一個愚蠢的錯誤?

+0

有趣的是,Java是完全一樣的。系統{{in,out,err}是最終的,但是設置{In,Out,Err}方法來挖掘本地代碼來改變它們。我不知道哪一個先出現? – 2009-05-04 17:55:53

回答

1

完整的猜測,但可能是因爲Set*方法已將HostProtectionAttribute應用於它們。我不知道你是否可以將屬性應用到屬性的setter部分。這絕對是我從來不需要做的事情,事實上HostProtectionAttribute本身不能通過它的外觀應用於財產。

+0

這聽起來像是一個合乎邏輯的答案,對我來說。愚蠢的問題,但是。難道他們不能將屬性應用到屬性調用的私有方法嗎?或者這不起作用? – senfo 2009-05-04 18:33:18