Kodun değiştirilmesinden önce kod çözümlemesinin size CA2000: Dispose objects before losing scope verdiğini varsayalım. Sorun şu ki, nesneyi atmamalısınız çünkü yöntemi kullanmaktan sonra bile kullanmak istiyorsanız (bir koleksiyona eklenmiştir).
Sen SuppressMessage attribute kullanarak mesaj bastırmak ya yoksa gerçekten paranoyak olmaya size kodunu yeniden yazabilirsiniz:
var favicon = new HtmlLink { Href = "~/templates/default/images/cc_favicon.ico" };
try {
favicon.Attributes.Add("rel", "shortcut icon");
}
catch {
favicon.Dispose();
throw;
}
Header.Controls.Add(favicon);
Bu kodun normal akış bunu bertaraf için daha sonra sorumludur koleksiyonuna favicon
ekler. Bununla birlikte, favicon.Attributes.Add
'un bir istisna attığı anormal akış istisnayı yaymadan önce favicon
'u atar.
Çoğu durumda, çöp toplayıcı eninde sonunda işini yapacağı için, kodun paranoid sürümüne ihtiyacınız yoktur.
R # gerçekten HtmlLink'i Atlamanızı Önerir mi? Bunu ekran görüntüsü alabilir misin? Olmaması gerekiyordu. – bzlm
@bzlm, Ben yeniden ifade edeceğim, bana bir karışıklık için özür dilerim, bir kullanım içine refactor seçeneği sunuyor. – Mantorok
sonra endişeleriniz doğru.Denetim koleksiyonuna eklediğiniz ASP.NET Web Form denetimlerini atmamalısınız. Ve genel bir not olarak, R # tarafından sağlanan seçenekler her zaman uygulanabilir değildir; Onları dikkatli kullanmalısın. :) Kodunuzda farklı birçok şeyi alt-giriş yapmaya çalışırsanız, bunun böyle olduğunu çabucak fark edeceksiniz. – bzlm