एफ # नामस्थानों के अलियासिंग का समर्थन नहीं करता - केवल मॉड्यूल और प्रकार। इसलिए, .NET असेंबली के बीच संघर्षों को हल करने के लिए, आप दुर्भाग्यवश, आपके द्वारा उपयोग किए जा रहे सभी प्रकार के लिए उपनाम परिभाषित करने की आवश्यकता होगी।
यह तथ्य थोड़ा आसान हो सकता है कि तथ्य यह है कि एफ # प्रकार उपनाम सामान्य प्रकार की घोषणाओं के रूप में देखा जाता है (एफ # कंपाइलर द्वारा, रनटाइम द्वारा नहीं)। इसका मतलब है कि, सी # using
कीवर्ड के साथ विपरीत, आप उन्हें एक 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
आपके आवेदन के बाकी में, आप अब SysIO.File
उपयोग कर सकते हैं। आपको अभी भी उपनाम लिखना है, लेकिन कम से कम आपको प्रत्येक फ़ाइल में ऐसा करने की ज़रूरत नहीं है ...
स्रोत
2012-02-21 14:29:26
यह एक अच्छा समाधान है, मुझे बस कुछ प्रकार की ज़रूरत है। –
"केवल मॉड्यूल और प्रकार": यह केवल प्रकार है, मॉड्यूल को एलियाड नहीं किया जा सकता है। खुशी से गलत होगा। – citykid
खुशी से मैं गलत हूँ। मॉड्यूल को इस प्रकार उपनाम किया जा सकता है: मॉड्यूल ACMEStore = ACME.DB.Store (http://stackoverflow.com/questions/3918744/how-to-use-namespace-or-type-alias-abrack) – citykid