अपनी कक्षाओं में मैं इस प्रकार के रूप में आईडीसिसोप्लिक लागू करता हूं:
public class User : IDisposable
{
public int id { get; protected set; }
public string name { get; protected set; }
public string pass { get; protected set; }
public User(int UserID)
{
id = UserID;
}
public User(string Username, string Password)
{
name = Username;
pass = Password;
}
// Other functions go here...
public void Dispose()
{
// Clear all property values that maybe have been set
// when the class was instantiated
id = 0;
name = String.Empty;
pass = String.Empty;
}
}
VS2012 में, मेरा कोड विश्लेषण आईडीसिसोपयोगी को सही तरीके से लागू करने के लिए कहता है, लेकिन मुझे यकीन नहीं है कि मैंने यहां क्या गलत किया है।
सटीक पाठ इस प्रकार है:
CA1063 'सही' पर डिस्पोजल (बूल) का एक अत्यधिक कार्यान्वयन प्रदान करें या सील किए गए प्रकार को चिह्नित करें। डिसपोज (झूठ) के लिए एक कॉल केवल देशी संसाधनों को साफ करना चाहिए। डिस्पोज (सच) के लिए एक कॉल प्रबंधित और देशी संसाधनों को साफ करना चाहिए। stman User.cs 10
संदर्भ के लिए: CA1063: सही ढंग से आईडीआईसप्लिमेंट को लागू करें
मैंने इस पृष्ठ के माध्यम से पढ़ा है, लेकिन मुझे डर है कि मैं वास्तव में यह नहीं समझता कि यहां क्या किया जाना चाहिए।
यदि कोई और अधिक लैंस शब्दों में समझा सकता है कि समस्या क्या है और / या आईडीआईसोपायरी को कैसे लागू किया जाना चाहिए, जो वास्तव में मदद करेगा!
IDispoable
यदि आपके पास निपटान करने के लिए अप्रबंधित संसाधन हैं (इसमें अप्रबंधित संसाधन शामिल हैं जो लिपटे हुए हैं ( SqlConnection
और FileStream
, आदि)। आपको लागू नहीं करना चाहिए और IDisposable
यदि आपके पास केवल यहां जैसे संसाधन प्रबंधित नहीं हैं, तो यह है, IMO। कोड विश्लेषण के साथ एक बड़ी समस्या। यह मूर्खतापूर्ण छोटे नियमों की जांच करने में बहुत अच्छा है, लेकिन वैचारिक त्रुटियों की जांच करने में अच्छा नहीं है ।
Dispose
?