2009-04-08 12 views
5

क्यों होगा इस संकलन:शब्दकोश और lambdas मज़ा

public Dictionary<ValueLineType, 
        Func<HtmlHelper, 
         string, 
         object, 
         Type, 
         string>> constructor = 
     new Dictionary<ValueLineType, 
         Func<HtmlHelper, 
          string, 
          object, 
          Type, 
          string>>(); 

नहीं बल्कि समारोह (बुलियन) में एक अतिरिक्त पैरामीटर के साथ इस एक दूसरे: अंधा

public Dictionary<ValueLineType, 
        Func<HtmlHelper, 
         string, 
         object, 
         Type, 
         bool, 
         string>> constructor = 
     new Dictionary<ValueLineType, 
         Func<HtmlHelper, 
          string, 
          object, 
          Type, 
          bool, 
          string>>(); 

या तो मैं हो रही है या कुछ और है जो मैं आज सीखने जा रहा हूं: डी

+0

वैसे, दूसरी पंक्ति के लिए त्रुटि है: "जेनेरिक प्रकार का उपयोग करना" सिस्टम। फनक 'आवश्यक' 2 'प्रकार तर्क " – antonioh

+3

बीटीडब्ल्यू,' var 'कीवर्ड आपका नया मित्र है। Http://msdn.microsoft.com/en-us/library/bb383973.aspx और http://stackoverflow.com/questions/9033#9035 देखें। – lacop

+0

निश्चित रूप से दो बार लिखने से काफी बेहतर है! – antonioh

उत्तर

18

Func<T1,T2,T3,T4,T5,TResult> जैसी कोई चीज़ नहीं है। पर

public delegate TResult Func<T1, T2, T3, T4, T5, TResult> 
    (T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5); 

हालांकि,: आप अपनी खुद की घोषणा कर सकते हैं निश्चित रूप से

Func<T> 
Func<T1, TResult> 
Func<T1, T2, TResult> 
Func<T1, T2, T3, TResult> 
Func<T1, T2, T3, T4, TResult> 
SpinalTap<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, TResult> 

: यह केवल जहाँ तक 4 के रूप में मानकों (यानी 5 प्रकार पैरामीटर, वापसी मान के लिए एक सहित) चला जाता है उस बिंदु पर मैं वास्तव में सावधानी से सोचता हूं कि क्या आप उन पैरामीटरों को एक साथ जोड़ सकते हैं। क्या वे पूरी तरह से असंबंधित हैं?

+0

लेकिन कोई कारण नहीं है कि आप खुद को जोड़ नहीं सकते क्योंकि वे जेनरिक के साथ प्रतिनिधि हैं। वास्तव में – Samuel

+0

। संपादन ... –

+0

@Me: 4 से अधिक पैरामीटर के साथ अपना खुद का जोड़ें। – Samuel

3

फ़नक नामक ढांचे द्वारा परिभाषित विभिन्न वर्ग हैं जो 1 से 5 पैरामीटर लेते हैं। आपको अपनी खुद की कक्षा को परिभाषित करने की आवश्यकता होगी जो 6 लेता है।

+0

Func केवल 4 पैरामीटर को परिभाषित करता है - लेकिन 5 * प्रकार * पैरामीटर। –

10

लेता है, .नेट पुस्तकालयों के अगले संस्करण समारोह और कार्रवाई में चार से अधिक मापदंडों के सामान्य प्रकार के शामिल होंगे।

संबंधित मुद्दे