In .NET what is the difference between:
Environment.CurrentDirectory
Directory.GetCurrentDirectory()
? Of course, Environment.CurrentDirectory
is a property which can be set and obtained.
Are there any other differences?
open System open System.IO if Environment. OSVersion. Platform = PlatformID. Win32NT then // Change the directory to %WINDIR% Environment.
As David says: they do the same thing. Internally, when getting Environment.CurrentDirectory
it will call Directory.GetCurrentDirectory
and when setting Environment.CurrentDirectory
it will call Directory.SetCurrentDirectory
.
Just pick a favorite and go with it.
As per other answers, there is no difference - the implemenetation of Environment.CurrentDirectory
delegates to the Get
and Set
methods in Directory
.
There's an interesting stylistic API-design question that that raises - why did the designers of Environment
feel that a regular property was appropriate, whereas the designers of Directory
preferred explicit Get
and Set
methods?
The Framework Design Guidelines book has a fair amount to say about choosing properties versus methods, some of which is available online. The most relevant parts seem to me to be (with my emphases):
A rule of thumb is that methods should represent actions and properties should represent data. Properties are preferred over methods if everything else is equal
...
- CONSIDER using a property, if the member represents a logical attribute of the type
...
- DO use a method, rather than a property, in the following situations:
- The operation is orders of magnitude slower than a field access would be
All things considered my opinion is that explicit Get
and Set
methods better represent what is going on here.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With