2010-07-07 8 views
33

मैं जैसे "कहाँ" खंड का उपयोग कर एक प्रकार निर्दिष्ट करने के जेनरिक सीमित कर सकते हैं:मैं एक विधि पर एकाधिक सामान्य प्रकार की बाधाओं को कैसे निर्दिष्ट करूं?

public void foo<TTypeA>() where TTypeA : class, A 

मैं यह कर कैसे करूँ मेरी समारोह दो सामान्य प्रकार हैं तो क्या होगा?

public void foo<TTypeA, TTypeB>() where TTypeA : class, A && TTypeB : class, B 

उपर्युक्त काम नहीं करता है। ": वर्ग, बी TTypeB"

उत्तर

53
public void foo<TTypeA, TTypeB>() where TTypeA : class, A 
            where TTypeB : class, B 
+1

सामान्य प्रकार पैरामीटर पर बाधाओं के बारे में अधिक जानकारी MSDN, पर उपलब्ध है, जहां वे बाधाओं (नग्न बाधाओं की तरह संभव के अन्य प्रकार के कुछ का वर्णन && की जगह ')। http://msdn.microsoft.com/en-us/library/d5x73970.aspx – LBushkin

+0

सभी को धन्यवाद! यह काम करता हैं। एक बार एसओ मुझे जाने के बाद मैं जवाब के रूप में चिह्नित करूंगा (जाहिर है मुझे 9 मिनट का इंतजार करना है) – Justin

8
public void foo<TTypeA, TTypeB>() where TTypeA : class, A where TTypeB : class, B 

डांग, 20 देर से क्या नियम जोड़ने के लिए सही सिंटैक्स है। जेम्स कुरान के लिए वोट दें, वह पहले थे।

+2

लेकिन आपके पास एक-लाइनर 8-) – Dani

6

ऐसा कुछ? `जहां TTypeB: TTypeA

public void foo<TTypeA, TTypeB>() where TTypeA : class where TTypeB : class 
0

बस के साथ एक और where

+0

सही नहीं है, अतिरिक्त बाधाओं के बिना केवल एक बाधा लगाई जा सकती है –

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