Environment.CurrentDirectory和Directory.GetCurrentDirectory有什么区别?

Roh*_*hit 27 .net c#

在.NET中有什么区别:

  • Environment.CurrentDirectory
  • Directory.GetCurrentDirectory()

当然,Environment.CurrentDirectory是可以设置和获得的属性.

还有其他差异吗?

Fre*_*örk 26

正如大卫所说:他们做同样的事情.在内部,当Environment.CurrentDirectory它获取它将调用,Directory.GetCurrentDirectory并在设置Environment.CurrentDirectory它将调用Directory.SetCurrentDirectory.

只需选择一个喜欢并随身携带.


Aak*_*shM 24

根据其他答案,没有区别 - Environment.CurrentDirectory代表的实现GetSet方法Directory.

有一个有趣的风格API设计问题引发了 - 为什么设计师Environment觉得常规属性是合适的,而Directory首选显式GetSet方法的设计者?

"框架设计指南"一书中有很多关于选择属性与方法的说法,其中一些可以在线获得.在我看来,最相关的部分是(我的重点):

根据经验,方法应该表示动作,属性应该代表数据.如果其他条件相同,则属性优先于方法

...

  • 如果成员表示该类型的逻辑属性,则使用属性的CONSIDER

...

  • 在以下情况下,请使用方法而不是属性:
    • 该操作比字段访问慢几个数量级

我认为所有事情都是明确的Get,Set 方法更好地代表了这里发生的事情.