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