2015-05-18 5 views
9

के माध्यम से आवंटित स्थैतिक विधि सर्कल नामक एक कक्षा है। इसमें सर्कलिड, सर्कल जीमेट्री और सर्कलपाथ गुणधर्म शामिल हैं।व्युत्पन्न प्रकार

public class Circle 
{ 
    public string ID {get; set;} 
    public EllipseGeometry circleGeometry {get; set;} 
    public Path circlePath {get; set;} 
} 

अब, मैं एक सर्कल के लिए ज़िन्डेक्स मान सेट करने की कोशिश कर रहा हूं। उदाहरण के लिए यह 2.

Canvas.SetZIndex(someCircleID.circlePath,2); 

हो जाएगा लेकिन मैं चेतावनी इस तरह है:

"स्थैतिक विधि व्युत्पन्न प्रकार के माध्यम से लागू"

किसी ने मुझसे व्याख्या कर सकते हैं क्या करता है क्या मतलब है?

+0

अनुमान में, 'कैनवास' किसी अन्य प्रकार का उप प्रकार है और 'SetZIndex' को बाद में परिभाषित किया गया है; 'कैनवास' द्वारा नहीं। –

उत्तर

8

SetZIndexPanel कक्षा पर परिभाषित किया गया है, जो Canvas से निकला है। कंपाइलर एक चेतावनी उत्पन्न कर रहा है जिसमें कहा गया है कि आप उप-प्रकार पर एक स्थिर विधि का उपयोग कर रहे हैं। यह वास्तविक समस्या नहीं है, लेकिन कुछ तरीकों से उपयोग होने पर भ्रम पैदा हो सकता है। SetZIndex शून्य वापसी है, यह कोई समस्या नहीं होनी चाहिए।

लेकिन निम्नलिखित कल्पना:

var ftpRequest = (FtpWebRequest) HttpWebRequest.Create("ftp://my.ftp.com"); 

Create वास्तव में WebRequest की एक स्थिर तरीका है, लेकिन बजाय HttpWebRequest पर प्रयोग किया जाता है, क्योंकि यह एक व्युत्पन्न प्रकार है और आप मई ऐसा करते हैं। तो, आप उम्मीद करेंगे कि यह एक वेब अनुरोध होगा जो उत्पन्न हो रहा है, है ना? लेकिन ऐसा नहीं है, यह FtpWebRequest उत्पन्न करता है, क्योंकि यह यूआरआई में निर्दिष्ट है।

संपादित करें:

मैं कहना है कि आम तौर पर, संकलक चेतावनी एक कारण के लिए देखते हैं चाहते हैं, कि जिस तरह से इस एक के साथ-साथ मौजूद है। जब तक कक्षा में SetZIndex का कोई अधिभार नहीं है, तो कॉल सुरक्षित है। लेकिन @SriramSakthivel टिप्पणियों में बताते हैं, यदि Canvas कक्षा (new संशोधक का उपयोग करके) किसी भी एक्सटेंशन विधि या स्थैतिक विधि को आपके द्वारा या किसी अन्य व्यक्ति द्वारा जोड़ा गया है, तो यह अब वांछित परिणाम आउटपुट नहीं करेगा और आप इसके बारे में पता होना चाहिए।

+0

चेतावनियों का सुझाव देने के लिए डाउनवॉटेड कोई समस्या नहीं है। चेतावनी का इलाज त्रुटियों के रूप में और उन्हें ठीक करने के लिए अच्छी सलाह होगी। –

+0

उत्तर के लिए धन्यवाद, अब सब स्पष्ट है;) –

+0

@ डेविड कहीं भी मैंने यह कहने का प्रयास नहीं किया कि सभी चेतावनियां * समस्या * नहीं हैं। वे कुछ गलत होने का संकेत देने के लिए हैं। इस विशेष मामले में, चेतावनी को सुरक्षित रूप से अनदेखा किया जा सकता है। –

2

इसका मतलब है कि विधि SetZIndex को बेस-प्रकार के वर्ग Canvas पर परिभाषित किया गया है लेकिन आप इसे बाद वाले का उपयोग करके कॉल करते हैं। बेस-क्लास का उपयोग करके आप बेहतर हो जाएंगे।

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