मुझे एक साफ/कॉम्पैक्ट पैटर्न चाहिए जो अपवाद सुरक्षित है और rulesKey
का ठीक से निपटान करेगा, भले ही कुछ फेंक दिया गया हो। यह using
के साथ संभव नहीं प्रतीत होता है (जब तक कि शायद 4 using
एस नहीं हो सकता है, लेकिन ऐसा लगता है कि ऐसा वर्बोज़ और अतिरिक्त संसाधन खोलना है जिसे मुझे खोले जाने की भी आवश्यकता नहीं है)। मुझे क्या लगता है कि यह सी ++ में इतना प्रत्यक्ष/आसान होगा। क्या कोई अच्छा समाधान है?सी #: क्या उपयोग करने के साथ संयुक्त वस्तु को खोजने के लिए एक साफ पैटर्न है?
{
RegistryKey rulesKey = null;
rulesKey = rulesKey ?? Registry.LocalMachine.OpenSubKey("Software\\Wow6432Node\\Company\\Internal\\Product");
rulesKey = rulesKey ?? Registry.LocalMachine.OpenSubKey("Software\\Company\\Company\\Internal\\Product");
rulesKey = rulesKey ?? Registry.LocalMachine.OpenSubKey("Software\\Wow6432Node\\Company\\Product");
rulesKey = rulesKey ?? Registry.LocalMachine.OpenSubKey("Software\\Company\\Product");
// Code using rulesKey, might throw
rulesKey.Close();
}
के खिलाफ भी कठोर है यदि कुंजियों में से कोई भी खोला नहीं जा सकता है? –
चूंकि ['OpenSubKey'] (https://msdn.microsoft.com/en-us/library/z9f66s0a (v = vs.110) .aspx) विफल होने पर शून्य लौटाता है, तो 'नियम कुंजी' शून्य हो जाएगी सब असफल – AGB
यदि कोई भी कुंजी खुलती नहीं है, तो यह शून्य होगी, जो 'उपयोग' कथन के लिए सुरक्षित है, कम से कम – VoidStar