2011-03-22 9 views
6

मैं एक वैरिएबल को परिभाषित करना चाहता हूं जो एसईटी में एक स्ट्रिंग स्वीकार करेगा, लेकिन फिर इसे एक इंट 32 में परिवर्तित कर देगा और जीईटी के दौरान इसका उपयोग करेगा।विभिन्न प्रकारों के रूप में प्राप्त/सेट करें

यहाँ

कोड है कि मैं वर्तमान में है:

private Int32 _currentPage; 

public String currentPage 
{ 
    get { return _currentPage; } 
    set 
    { 
     _currentPage = (string.IsNullOrEmpty(value)) ? 1 : Convert.ToInt32(value); 
    } 
} 
+0

आपका प्रश्न क्या है? –

उत्तर

10

मैं एक स्पष्ट Set विधि सुझाव है:

private int _currentPage; 

public int CurrentPage 
{ 
    get 
    { 
     return _currentPage; 
    } 
} 

public void SetCurrentPage(string value) 
{ 
     _currentPage = (string.IsNullOrEmpty(value)) ? 1 : Convert.ToInt32(value); 
} 

एक तरफ ध्यान दें के रूप में, अपने पार्स विधि इस तरह बेहतर कर सकते हैं:

if (!int.TryParse(value, out _currentPage) 
{ 
    _currentPage = 1; 
} 

इससे प्रारूपण अपवाद बचा जाता है।

+0

एक स्ट्रिंग संपत्ति एक int लौट रही है। –

+0

आपके पास सेटिंग के लिए एक बुद्धिमान तरीका क्यों होगा जो कि एक तर्क लेता है जो कि संपत्ति के सेट के समान प्रकार का है? उनके प्रश्न में उदाहरण अधिक समझ में आता है। एक सेटटर में कोड रखने में कुछ भी गलत नहीं है। यदि आपकी विधि ने एक अलग प्रकार (कहें, int) का तर्क लिया है तो यह सेटटर से अलग होने के लिए समझ में आता है। –

+0

@ टेंगल: इसमें एक ही प्रकार नहीं है ... एक 'int' है, और एक' स्ट्रिंग' है ... –

0

क्या आप जिस तरह से यह करने की जरूरत है। आपके द्वारा खोजे जाने वाले कोई स्वचालित रूपांतरण नहीं हैं।

+0

खैर, मैं तर्क दूंगा कि वह सेट में अमान्य (शून्य के अलावा) डेटा को संभालना चाहता है, लेकिन उसके पास ऐसा करने के अच्छे कारण भी हो सकते हैं। –

3

ध्यान रखें कि संपत्ति को & विभिन्न प्रकारों के विरुद्ध उपयोग करने के लिए वास्तव में वास्तव में बुरा विचार है। कुछ तरीकों से अधिक समझदारी हो सकती है, और किसी भी अन्य प्रकार से गुज़रने से यह संपत्ति उड़ा दी जाएगी।

public object PropName 
{ 
    get{ return field; } 
    set{ field = int.Parse(value);    
} 
+1

बुरा विचार उसके लिए सही विचार है :) –

0

जादू का उपयोग करके ब्लॉक प्राप्त करें और सेट करें, आपके पास वापस आने के समान विकल्प नहीं है। मेरी राय में, इसे संभालने का बेहतर तरीका यह है कि कॉलिंग कोड रूपांतरण करता है और केवल एक int टाइप करें।

+0

क्या मैं पूछ सकता हूं कि आप उन्हें जादू के रूप में क्यों वर्णित करते हैं? – ChaosPandion

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