2010-06-18 14 views
20

में शून्य रिटर्न सी # में निम्नलिखित इंटरफेस की कल्पना को लागू करने की? ऑनलाइन खोज के 30 मिनट के दौरान मुझे मिले सभी उदाहरण केवल उदाहरण दिखाते हैं जिनके पास वापसी प्रकार हैं जो मुझे लगता है कि एक कार्यात्मक शैली में अधिक आम है, लेकिन कुछ ऐसा जो मैं इस उदाहरण से नहीं बच सकता।कैसे एक अंतरफलक सदस्य है कि एफ #

यहाँ मैं अब तक है:

type Bar() = 
    interface IFoo with 
     member this.Bar() = 
      void 

_FS0010 साथ विफल:

अप्रत्याशित कीवर्ड 'शून्य' expression_ में।

उत्तर

22

समकक्ष इकाई है जिसे () के रूप में परिभाषित किया गया है।

type Bar() = 
    interface IFoo with 
     member this.Bar() =() 
+0

धन्यवाद। मैं सीख रहा हूँ एफ #! –

+0

@ ड्रू - यह एक शानदार भाषा है। – ChaosPandion

+0

सी # कोड एक विधि थी, एक संपत्ति नहीं। इसे एफ # में पुन: पेश करने के लिए, मेरा मानना ​​है कि आपको हस्ताक्षर इकाई -> इकाई के साथ एक सदस्य की आवश्यकता है। यह लिखा जाएगा "सदस्य यह। बार() =()"। इकाई पैरामीटर के बिना, एफ # एक गेटटर के साथ एक संपत्ति हो सकती है। – Jason

6

वापसी प्रकार होने के लिए() की जरूरत है, तो कुछ की तरह सदस्य this.Bar =(), चाल

+7

pedantic होने के लिए, वापसी _type_ 'इकाई' है, उस प्रकार का केवल _value_ वर्तनी'() 'है। – Brian

7

एफ # प्रकार पर सामान्य जानकारी के लिए क्या करना चाहिए देखने

The basic syntax of F# - types

कि पृष्ठ से:

इकाई प्रकार में केवल एक मान है, लिखा है "()"। यह "शून्य" जैसा थोड़ा सा है, इस अर्थ में कि यदि आपके पास कोई ऐसा फ़ंक्शन है जिसे आप केवल साइड इफेक्ट्स (उदा। Printf) के लिए कहते हैं, तो इस तरह के फ़ंक्शन में "यूनिट" का रिटर्न प्रकार होगा। प्रत्येक कार्य एक तर्क लेता है और परिणाम देता है, इसलिए आप यह इंगित करने के लिए "इकाई" का उपयोग करते हैं कि तर्क/परिणाम अनिच्छुक/अर्थहीन है।

+0

लिंक के लिए धन्यवाद। मैंने आपके उत्तर में पृष्ठ से उद्धरण शामिल किया था। –

3

एफ # में बराबर है:

type IFoo = 
    abstract member Bar: unit -> unit 
संबंधित मुद्दे