আমার ক্লাসে আমি নিম্নলিখিত হিসাবে আইডিস্পোজেবল বাস্তবায়ন করি:
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;
}
}
ভিএস ২০১২-এ, আমার কোড বিশ্লেষণটি সঠিকভাবে আইডিস্পোজেবলকে কার্যকর করার জন্য বলেছে, তবে আমি এখানে ভুল কী করেছি তা নিশ্চিত নই।
সঠিক পাঠ্যটি নিম্নরূপ:
CA1063 কার্যকরভাবে আইডিস্পোজেবল কার্যকর করুন 'ব্যবহারকারী' এ ডিসপোজ (বুল) এর একটি ওভারডেবল বাস্তবায়ন সরবরাহ করুন বা সিল হিসাবে চিহ্নিত করুন। নিষ্পত্তি কল (মিথ্যা) একটি কল শুধুমাত্র দেশীয় সম্পদ পরিষ্কার করা উচিত। ডিসপোজ (সত্য) এর একটি কল পরিচালিত এবং স্থানীয় উভয় সংস্থান পরিষ্কার করতে হবে। stman User.cs 10
রেফারেন্সের জন্য: CA1063: আইডিস্পোজেবল সঠিকভাবে প্রয়োগ করুন
আমি এই পৃষ্ঠাটি পড়েছি তবে আমি ভয় করি যে এখানে কী করা দরকার তা আমি সত্যিই বুঝতে পারি না।
যদি কেউ আরও ল্যামেন্সের শর্তে সমস্যাটি কীভাবে এবং / অথবা কীভাবে আইডিস্পোজেবল কার্যকর করা উচিত তা ব্যাখ্যা করতে পারে, এটি সত্যই সহায়তা করবে!
IDispoable
আপনি অপরিচালিত সম্পদের (এই অপরিচালিত সম্পদের আবৃত করা হয় (অন্তর্ভুক্ত মীমাংসা করা আছে যদি SqlConnection
, FileStream
, ইত্যাদি)। আপনি না করা উচিত নয় বাস্তবায়ন IDisposable
যেমন এখানে আপনি শুধুমাত্র সম্পদ পরিচালিত হয়েছে। আইএমও'র হল, । কোড বিশ্লেষণের সঙ্গে একটি প্রধান সমস্যা এটা নিরীহ সামান্য নিয়ম চেক খুব ভাল, কিন্তু এর না ধারণাগত ত্রুটি পরীক্ষণ এ গুড।
Dispose
?