F # nie obsługuje aliasingu przestrzeni nazw - tylko moduły i typy. Tak więc, aby rozwiązać konflikty między zespołami .NET, niestety trzeba zdefiniować aliasy dla wszystkich typów, których używasz.
Może to być nieco łatwiejsze dzięki temu, że aliasy typu F # są wyświetlane jako normalne deklaracje typów (przez kompilator F #, a nie przez środowisko wykonawcze). Oznacza to, że w przeciwieństwie do C# using
hasła, można je zdefiniować w pliku spearate:
// Aliases.fs
namespace SysIO
// Open the 'System' namespace to get a bit shorter syntax
// ('type File = File' is interpreted as discriminated union)
open System
type File = IO.File
type Directory = IO.Directory
W pozostałej części aplikacji, można teraz używać SysIO.File
. Nadal musisz pisać aliasy, ale przynajmniej nie musisz tego robić w każdym pliku ...
To jest dobre rozwiązanie, potrzebuję tylko garstki typów. –
"tylko moduły i typy": są to tylko typy, moduły nie mogą być aliasowane. byłby szczęśliwie zły. – citykid
szczęśliwie się mylę. moduły mogą być aliasowane w następujący sposób: moduł ACMEStore = ACME.DB.Store (http://stackoverflow.com/questions/3918744/how-to-use-namespace- or-type-alias-abbreviation) – citykid