2009-12-02 15 views
8

क्या एक प्रकार पर सार्वजनिक शाब्दिक (सी # में सार्वजनिक आधार) को परिभाषित करने का कोई तरीका है? स्पष्ट रूप से प्रकारों में बाइंडिंग को निजी होना चाहिए और साहित्यिक विशेषता सदस्यों पर लागू नहीं की जा सकती है।एफ # - सार्वजनिक शाब्दिक

उत्तर

9

[< शाब्दिक>] विशेषता का उपयोग करें। यह वह जादू है जिसे आप ढूंढ रहे हैं। इसके अलावा, एक स्ट्रिंग जैसे मूल्य पर शाब्दिक विशेषता डालने से इसे पैटर्न मिलान के भीतर उपयोग किया जा सकता है। उदाहरण के लिए:

// BAD - introduces new value named 'Name' 
let Name = "Chris Smith" 

match Console.ReadLine() with 
| Name -> printfn "You entered my name! %s" Name 
| _ -> printfn "You didn't enter my name" 

// Good - uses the literal value, matches against the value Name 
[<Literal>] 
let NameLiteral = "Chris Smith" 
match Console.ReadLine() with 
| NameLiteral -> "You entered my name!" 
| _ -> printfn "You didn't enter my name. 

संपादित करें: मैं देखता हूं कि प्रश्न यह बता रहा है कि इन्हें कस्टम कक्षाओं (और मॉड्यूल नहीं) में कैसे रखा जाए। मुझे नहीं पता कि क्या आप एफ # के भीतर सार्वजनिक कॉन्स/पब्लिक रीडोनली फ़ील्ड का पर्दाफाश कर सकते हैं, मैं इसे देख लूंगा।

+0

धन्यवाद। हां, कुंजी 'सार्वजनिक' है। – Daniel

+0

यह सुनिश्चित नहीं है कि यह प्रतिक्रिया क्यों जारी रही है क्योंकि यह प्रश्न का उत्तर नहीं देती है (एक तथ्य क्रिस भी स्वीकार करता है)। – Daniel

+0

मेरा सिद्धांत यह है कि जब लोग कुछ सवाल पाते हैं तो भी वे अक्सर वोट देते हैं, भले ही यह सवाल का जवाब न दे। – gradbot