2009-05-04 77 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