मैं अपनी किताबों के माध्यम से रहा हूं, और जब तक मैं खोज शब्द से बाहर नहीं चला जाता, तब तक मैं गुम हो गया हूं, फिर भी मुझे इस समस्या का कोई उदाहरण या उत्तर नहीं मिल रहा है:कोई एफ # प्रकार संदर्भ त्रुटियों को कैसे हल करता है?
निम्न कोड संकलित नहीं करता है क्योंकि एंटीटी घोषित होने पर प्रकार प्रभाव और प्रकार का प्रभाव घोषित नहीं किया गया है। तो मुझे समझ में नहीं आता कि यह कैसे काम करता है।
सी ++ में, यह समस्या एच फाइलों में प्रोटोटाइप घोषणा के माध्यम से हल की जाती है और फिर एच फ़ाइल सहित। सी # में यह कभी भी एक मुद्दा नहीं है। तो यह एफ # में कैसे हल किया जाता है?
#light
type Entity =
{
Name:string;
Affects:List<Affect>; //Compile error: The type Affect is not defined
Effects:List<Effect>; //Compile error: the type Effect is not defined
}
type Effect =
{
Name:string;
//A function pointer for a method that takes an Entity and returns an Entity
ApplyEffect:Entity -> Entity;
}
type Affect =
{
Name:string;
//A List of Effects that are applied by this Affect Object
EffectList:List<Effect>;
//A function pointer to return an Entity modified by the listed Effects
ApplyAffect:Entity->Entity;
}
अंतर्निहित यहाँ लक्ष्य है कि प्रकार इकाई की एक वस्तु सूची को प्रभावित करता है यह प्रकार इकाई की वस्तुओं के लिए आवेदन कर सकते हैं सक्षम होना चाहिए है। इकाई उस प्रभाव को भी सूचीबद्ध कर सकती है जो इसे लागू किया गया है। इस तरह एक इकाई की "वर्तमान" स्थिति मूल इकाई स्थिति के खिलाफ सभी प्रभावों को तब्दील करके पाई जाती है।
अपने समय के लिए धन्यवाद,
--Adam लेंडा
देखें http://stackoverflow.com/questions/680606/f-how-to-have-two-methods-calling-each-other wh ich दिखाता है कि पारस्परिक रूप से पुनरावर्ती कार्यों के साथ-साथ पारस्परिक रूप से पुनरावर्ती प्रकारों को परिभाषित करने के लिए कैसे। – Brian