2009-09-09 10 views
11

पहले, एमएफसी में आयताकार के लिए ऐसी विधि है, मुझे नहीं पता कि सी # संस्करण के लिए क्यों नहीं है।सी # में आयत वर्ग के लिए कोई केंद्र() विधि क्यों नहीं है?

+2

रिटर्न मैं इस एक अजीब चूक के रूप में अच्छी तरह से हो पाते हैं। –

उत्तर

29

संभवतः इसे शामिल करने के योग्यता के लिए पर्याप्त उपयोगी समझा नहीं गया था।

आप आसानी से एक विस्तार पद्धति के रूप में जोड़ सकते हैं आप, हालांकि चाहते हैं (और आप उपयोग कर रहे हैं सी # 3):

public static Point Center(this Rectangle rect) 
{ 
    return new Point(rect.Left + rect.Width/2, 
        rect.Top + rect.Height/2); 
} 

ध्यान दें कि के रूप में मान पूर्णांक के रूप में व्यक्त कर रहे हैं, आप आसानी से खत्म हो सकता है एक गैर-सटीक मान प्राप्त करना, मान लीजिए कि आप decimal या double का उपयोग करके किसी अन्य संरचना के बजाय Point वापस करना चाहते हैं।

ऊपर System.Drawing.Rectanglestruct के लिए वास्तव में है। यदि आप एक अलग आयत के बारे में बात कर रहे हैं, तो कृपया उचित जानकारी जोड़ें और मैं अपना जवाब संपादित करूंगा।

+0

इस एक्सटेंशन को System.Drawing.Rectangle में कैसे जोड़ें? – CallMeLaNN

+1

@CallMeLaNN: बस इसे स्थिर, गैर-जेनेरिक, शीर्ष-स्तरीय कक्षा में घोषित करें। अधिक जानकारी के लिए, सामान्य रूप से एक्सटेंशन विधियों के बारे में पढ़ें, उदा। एमएसडीएन में –

+0

http://connect.microsoft.com/VisualStudio/feedback/details/93879/system-drawing-rectangle-needs-centerpoint-property वह औपचारिक रूप से सुझाया गया है। – Stobor

5

यह माइक्रोसॉफ्ट.एक्सएनए.फ्रेमवर्क के भीतर मौजूद नहीं है (अब समर्थित नहीं है)।

Rectangle.Center Property

myRectangle.Center एक Point

+0

किस संस्करण में? नेट 5? – Benny

+0

4.5.51641 में यह है। यह सुनिश्चित नहीं है कि यह कब जोड़ा गया था। – Evorlor

+0

आप किस सटीक प्रकार का जिक्र कर रहे हैं? एक लिंक उपयोगी होगा। –

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