2011-03-04 11 views
8

वहाँ एक संपत्ति एक समर्थन क्षेत्रकिसी संपत्ति को किसी ऑटो प्रॉपर्टी में कनवर्ट करते समय ReSharper को सभी फ़ाइलों को स्कैन करने की आवश्यकता क्यों होती है?

private int _id; 
    public int Id 
    { 
     get { return _id; } 
     set { _id = value; } 
    } 

एक स्वत: संपत्ति बनाम है कि तक पहुँचने के बीच कोई अंतर है?

public int Id { get; set; } 

कारण मैं पूछ रहा हूँ यह है कि जब ReSharper दे एक ऑटो संपत्ति में एक संपत्ति परिवर्तित यह अपने पूरे समाधान स्कैन करने के लिए लगता है, या कम से कम सभी aspx-फ़ाइलें।

मैं किसी भी कारण है कि कक्षा के बाहर से दोनों के बीच कोई अंतर नहीं होना चाहिए नहीं देख सकता। है?

उत्तर

12

संकलक स्वत: गुण के लिए समर्थन क्षेत्र स्वत: जनरेट करता है, इसलिए कोई, वहाँ कोई अंतर नहीं होना चाहिए।

रीशर्पर सभी फ़ाइलों को स्कैन कर रहा है, क्योंकि यदि आपके पास Partial वर्ग परिभाषित है, तो यह सार्वजनिक संपत्ति के बजाय बैकिंग फ़ील्ड का उपयोग कर सकता है, भले ही कोड भौतिक रूप से अलग-अलग फ़ाइलों में मौजूद हो।

उदाहरण के लिए: के बाद से यह कोई तरीका नहीं है पता करने के लिए जहां एक आंशिक वर्ग परिभाषित किया जा सकता है

// MyClass.cs 
public partial class MyClass 
{ 
    int _id; 
    public int ID { get { return _id; } set { _id = value; } } 
    public MyClass(int identifier) 
    { 
     ID = identifier; 
    } 
} 

// MyClass2.cs 
public partial class MyClass 
{ 
    public void ChangeID(int newID) 
    { 
     _id = newID; 
    } 
} 

ReSharper, सभी फाइलों को स्कैन करना होगा।

+1

+1 सही समझ में आता है क्यों ओपी कह सकते हैं कि यह उसकी ASPX.CS की स्कैनिंग की गई थी, क्योंकि वे उन सभी आंशिक कर रहे हैं, और प्रश्न में कोड बहुत संभावना एक page.aspx.cs जहां संपत्ति परिभाषित किया गया है और इसलिए आंशिक है। –

+1

+1 - अच्छी सोच! – BFree

+0

वास्तव में अच्छा स्पष्टीकरण, मैं ओपी से पूछने के लिए लगभग तैयार था कि क्या उसे यकीन था कि रीशर्पर वास्तव में – Dyppl