मैं रिकर्सिवली सब एक वस्तुओं के गुण और उप-प्रकार गुण आदि मेरे ऑब्जेक्ट मॉडल का अनुसरण करता है के रूप में बाहर मुद्रित करने के लिए कोशिश कर रहा हूँ प्रकार के साथ मिलान पैटर्न ...च #
type suggestedFooWidget = {
value: float ;
hasIncreasedSinceLastPeriod: bool ;
}
type firmIdentifier = {
firmId: int ;
firmName: string ;
}
type authorIdentifier = {
authorId: int ;
authorName: string ;
firm: firmIdentifier ;
}
type denormalizedSuggestedFooWidgets = {
id: int ;
ticker: string ;
direction: string ;
author: authorIdentifier ;
totalAbsoluteWidget: suggestedFooWidget ;
totalSectorWidget: suggestedFooWidget ;
totalExchangeWidget: suggestedFooWidget ;
todaysAbsoluteWidget: suggestedFooWidget ;
msdAbsoluteWidget: suggestedFooWidget ;
msdSectorWidget: suggestedFooWidget ;
msdExchangeWidget: suggestedFooWidget ;
}
और मेरे प्रत्यावर्तन पर आधारित है पैटर्न मिलान निम्नलिखित ...
let rec printObj (o : obj) (sb : StringBuilder) (depth : int)
let props = o.GetType().GetProperties()
let enumer = props.GetEnumerator()
while enumer.MoveNext() do
let currObj = (enumer.Current : obj)
ignore <|
match currObj with
| :? string as s -> sb.Append(s.ToString())
| :? bool as c -> sb.Append(c.ToString())
| :? int as i -> sb.Append(i.ToString())
| :? float as i -> sb.Append(i.ToString())
| _ -> printObj currObj sb (depth + 1)
sb
डिबगर मुझे लगता है कि currObj प्रकार स्ट्रिंग, पूर्णांक, नाव, आदि की है लेकिन यह हमेशा तल पर डिफ़ॉल्ट रूप मामले को कूदता में। कुछ पता है कि ऐसा क्यों हो रहा है?
संकलक कह रहा है: क्षेत्र, निर्माता या सदस्य 'getValue' – PhilBrown
@philbrowndotcom परिभाषित नहीं है - मैं तुम्हें एक डाली क्या करने की जरूरत है। – ChaosPandion