मेरे पास एक संदर्भ-प्रकार चर है जो readonly
है, क्योंकि संदर्भ कभी भी नहीं बदलता है, केवल इसकी गुणता है। जब मैंने volatile
संशोधक को जोड़ने की कोशिश की तो संकलित ने मुझे चेतावनी दी कि यह दोनों संशोधक एक ही चर पर लागू नहीं होने देगा। लेकिन मुझे लगता है कि मुझे अस्थिर होने की आवश्यकता है क्योंकि मैं अपनी संपत्तियों को पढ़ने के दौरान कैशिंग समस्याओं को नहीं लेना चाहता हूं। क्या मुझे कुछ याद आ रही है? या संकलक गलत है?क्यों रीडोनली और अस्थिर संशोधक पारस्परिक रूप से अनन्य हैं?
अद्यतन मार्टिन के रूप में नीचे टिप्पणी में से एक में कहा गया है: दोनों केवल पढ़ने के लिए और अस्थिर संशोधक संदर्भ प्रकार की वस्तुओं के मामले में केवल संदर्भ के लिए लागू होते हैं, और ऑब्जेक्ट के गुणों के लिए नहीं,। यही वह था जो मैं याद कर रहा था, इसलिए संकलक सही है।
class C
{
readonly volatile string s; // error CS0678: 'C.s': a field cannot be both volatile and readonly
}
कंपाइलर [संभावित रूप से गलत] है (http://stackoverflow.com/q/39004125/1149773) (हालांकि संभवतः आपके विशेष परिदृश्य के लिए नहीं)। – Douglas