2010-02-09 20 views
5

यह शायद संभव नहीं है, लेकिन यहाँ जाता है:चर लंबाई तर्क C#

मैं एक struct जहाँ मैं घोषणा पर बहस की राशि निर्धारित कर सकते हैं बनाना चाहते हैं।

उदाहरण के लिए

, अब मैं उपयोग कर रहा हूँ:

KeyValuePair<T, T> 

लेकिन KeyValuePair ही कभी एक कुंजी है, और एक मूल्य ले सकते हैं। मुझे लगता है कि यह संभव नहीं है, लेकिन शायद मैं सिर्फ पता नहीं है पर्याप्त सी #

CustomValues<T, {T, {..}}> 

:

यह संभव तरह कुछ बनाने के लिए है। मैं भी चतुर समाधान के लिए खुला रहा हूँ,

आप

उत्तर

3

नहीं, यह संभव नहीं है, जैसा कि Func<T>, Func<T, TResult>, Func<T1, T2, TResult>, आदि द्वारा दिखाया गया है

,210
+0

तो अनिवार्य रूप से, बस कई घोषणाओं है आता है क्या करने के लिए एक विकल्प दे बनाना चाहते हैं? 1-10 बहस के साथ? –

+3

ठीक है, या, यह विचार करें कि क्या यह वास्तव में आपके एपीआई को मॉडल करने का एक अच्छा तरीका है। अक्सर यह नहीं है। हालांकि, .NET 4 में, हमें इस तरह के बहुत सारे टुपल प्रकार मिलते हैं। –

+0

मुझे पता है कि यह भयानक तर्क है, लेकिन जो मैं टालना चाहता हूं वह कम से कम कार्यों के लिए बनाए गए कस्टम स्ट्रक्चर के भार और भार है, जैसे कार्यों में आगे और आगे एसक्यूएल परिणाम पास करना। मुझे पता है कि LINQ यह हल करता है, लेकिन 2.0 के लिए 2.0 अब –

1

धन्यवाद लेकिन, अपनी केवीपी मान प्रकार के साथ-साथ एक सामान्य हो सकते हैं:

KeyValuePair<T, List<U,V>> 

या:

KeyValuePair<T, KeyValuePair<U,V>> 
+0

मैं कुछ है कि जूनियर प्रोग्रामर आसानी से उपयोग कर सकते हैं, बजाय उन्हें जो कुछ भी उनके मन में पहले –

1

आप इस

public class CustomClass 
    { 
    KeyValuePair<T , KeyValuePair<T, V>> setOfArguments; 
    public CustomClass(KeyValuePair<T, KeyValuePair<T, V>> _setOfArguments) 
     { 
     setOfArguments = _setOfArguments; 
     }  
    } 
0

कोशिश कर सकते हैं विल आप के लिए यह काम करता है?

public void UseParams(params KeyValuePair<String, String>[] list) { 
    ... 
} 
+0

नहीं, मुझे KeyValuePair (ओं) का ऐरे नहीं चाहिए, मैं अपना खुद का कस्टम KeyValuePair बनाना चाहता हूं, जहां मैं जितना चाहूं उतने तर्कों को पार कर सकता हूं –

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