2014-04-23 9 views
7

के रूप में इस article में दिखाया गया है, एक सी # में परिभाषित कर सकते हैं:डेल्फी में आत्म-संदर्भ जेनरिक बाधा के साथ कक्षा को परिभाषित करने के लिए कैसे?

public class MyTreeNode<T> where T: MyTreeNode<T> 
{ 

} 

डेल्फी में, हालांकि, निम्नलिखित कोड संकलन नहीं करता है और शिकायत "E2003 अघोषित पहचानकर्ता: 'MyTreeNode <>'":

type 
    TMyTreeNode<T: TMyTreeNode<T>> = class 
    end; 

औपचारिक शब्दावली "self-referencing generics constraint" प्रतीत होती है। मुझे आश्चर्य है कि डेल्फी में ऐसा कैसे करें?

पुनश्च:

Another useful article as David pointed out

Relevent SO post regarding Delphi and covariance/contravariance

Wikipedia page of co/contra-variance

+1

आप डेल्फी जेनेरिक बाधाओं के साथ ऐसा नहीं कर सकते –

+0

@ डेविड हेफरन आपकी टिप्पणी के लिए धन्यवाद! – SOUser

उत्तर

2

ऐसी सामान्य बाधा व्यक्त करने के लिए डेल्फी में कोई रास्ता नहीं है। इसके अलावा, मेरा मानना ​​है कि इस तरह की बाधा के साथ सी # में हासिल किया जा सकता है, यह हासिल करने के लिए कोई प्रकार नहीं है।

+1

आपकी टिप्पणी के लिए धन्यवाद! क्या आप इस तरह की बाधा के साथ सी # में हासिल किए जा सकने के लिए कोई प्रकार नहीं है "के बारे में और अधिक व्याख्या करने में मदद कर सकते हैं? – SOUser

+0

आप जेनेरिक का उपयोग कर रहे हैं क्योंकि आप टाइप सुरक्षा चाहते हैं। आप जेनेरिक छोड़कर कंटेनर को टाइप सुरक्षा के बिना कार्यान्वित कर सकते हैं। –

+0

आपकी टिप्पणी के लिए धन्यवाद! क्या आप "जेनेरिक छोड़कर टाइप सुरक्षा के बिना कंटेनर को कार्यान्वित कर सकते हैं" के बारे में एक उदाहरण दिखाने में मदद कर सकते हैं। ? – SOUser

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

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