Sınıflarımda IDisposable'ı aşağıdaki gibi uyguluyorum:
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'de, Kod Analizim ID'yi tek kullanımlık olarak doğru bir şekilde uyguladığını söylüyor, ancak burada yanlış yaptığımdan emin değilim.
Tam metin aşağıdaki gibidir:
CA1063 ID'yi doğru bir şekilde uygulayın 'Kullanıcı'da geçersiz kılınabilen bir Dispose (bool) uygulaması sağlayın veya türü mühürlü olarak işaretleyin. Dispose (yanlış) çağrısı (false) yalnızca yerel kaynakları temizlemelidir. Dispose çağrısı (true) hem yönetilen hem de yerel kaynakları temizlemelidir. stman Kullanıcı.cs 10
Referans için: CA1063: Uygulama kimliği doğru bir şekilde atılabilir
Bu sayfayı okudum, ama korkarım burada ne yapılması gerektiğini gerçekten anlamıyorum.
Herhangi bir kimse sorunun ne olduğunu ve / veya IDisposable nasıl uygulanması gerektiğini daha lamens terimleri ile açıklayabilir, bu gerçekten yardımcı olacaktır!
IDispoable
bu (sarılır yönetilmeyen kaynakları içerir (bertaraf etmek yönetilmeyen kaynakları varsa SqlConnection
, FileStream
Sen ve yok vb.) Olmamalıdır uygulamak IDisposable
sadece kaynak yönetilen varsa böyle burada da. Bu IMO olduğu, kod analizi ile ilgili önemli bir sorun Aptalca küçük kuralları kontrol etmede çok iyi, ancak kavramsal hataları kontrol etmede iyi değil .
Dispose
mu?