在.NET中有什么区别:
Environment.CurrentDirectory
Directory.GetCurrentDirectory()
? 当然,Environment.CurrentDirectory
是可以设置和获得的属性.
还有其他差异吗?
Fre*_*örk 26
正如大卫所说:他们做同样的事情.在内部,当Environment.CurrentDirectory
它获取它将调用,Directory.GetCurrentDirectory
并在设置Environment.CurrentDirectory
它将调用Directory.SetCurrentDirectory
.
只需选择一个喜欢并随身携带.
Aak*_*shM 24
根据其他答案,没有区别 - Environment.CurrentDirectory
代表的实现Get
和Set
方法Directory
.
有一个有趣的风格API设计问题引发了 - 为什么设计师Environment
觉得常规属性是合适的,而Directory
首选显式Get
和Set
方法的设计者?
"框架设计指南"一书中有很多关于选择属性与方法的说法,其中一些可以在线获得.在我看来,最相关的部分是(我的重点):
根据经验,方法应该表示动作,属性应该代表数据.如果其他条件相同,则属性优先于方法
...
- 如果成员表示该类型的逻辑属性,则使用属性的CONSIDER
...
- 在以下情况下,请使用方法而不是属性:
- 该操作比字段访问慢几个数量级
我认为所有事情都是明确的Get
,Set
方法更好地代表了这里发生的事情.