Obsolete Attribute ক্লাস, মেথড, প্রপার্টি, ফিল্ড, ডেলিগেট ইত্যাদিকে ডিপ্রিকেট বা প্রচলনবাহিত চিহ্নিত করতে ব্যবহৃত হয়। কম্পাইলার কম্পাইল টাইমে এটি পড়ে ডেভেলপারকে সতর্কতা (warning) বা ত্রুটি (error) দেখায়।
কেন ব্যবহার করবেন?
- পুরানো মেথড বাদ দিয়ে নতুন ভার্সন ব্যবহার করতে বাধ্য করা
- মাইগ্রেশন সময় পูর্নি কোড সাপোর্ট রাখতে
- ভবিষ্যতে রিমুভ হবearen সিগন্যাল দেওয়া
Obsolete অ্যাট্রিবিউটের কনস্ট্রাক্টর
| সিনট্যাক্স | বিবরণ |
[Obsolete] | ডিফল্ট, শুধু সতর্কতা (warning) |
[Obsolete("message")] | কাস্টম মেসেজসহ সতর্কতা |
[Obsolete("message", true)] | মেসেজসহ কম্পাইল ত্রুটি (error) |
[Obsolete("message", false)] | মেসেজসহ সতর্কতা (false = error নয়) |
উদাহরণ
using System;
namespace DemoApplication {
class Demo {
static void Main(string[] args) {
ObsoleteMethod(); // Warning
ObsoleteMethodWithMessage(); // Warning with message
ObsoleteMethodWithMessageAndNoFail(); // Warning with message
ObsoleteMethodWithMessageAndFail(); // **ERROR** - কম্পাইল ফেলবে
Console.ReadLine();
}
[Obsolete]
public static void ObsoleteMethod() { }
[Obsolete("এই মেথড প্রচলনবাহিত, নতুন UseNewMethod() ব্যবহার করুন")]
public static void ObsoleteMethodWithMessage() { }
[Obsolete("এই মেথড প্রচলনবাহিত", false)]
public static void ObsoleteMethodWithMessageAndNoFail() { }
[Obsolete("এই মেথড প্রচলনবাহিত, ব্যবহার করবেন না", true)]
public static void ObsoleteMethodWithMessageAndFail() { }
// নতুন মেথড
public static void UseNewMethod() { }
}
}
Visual Studio-তে আউটপুট:
// Warning CS0618: 'Demo.ObsoleteMethod()' is obsolete
// Warning CS0618: 'Demo.ObsoleteMethodWithMessage()' is obsolete: 'এই মেথড প্রচলনবাহিত...'
// Warning CS0618: 'Demo.ObsoleteMethodWithMessageAndNoFail()' is obsolete: 'এই মেথড প্রচলনবাহিত'
// Error CS0618: 'Demo.ObsoleteMethodWithMessageAndFail()' is obsolete: 'এই মেথড প্রচলনবাহিত, ব্যবহার করবেন না'
বেস্ট প্র্যাকটিস
- মেসেজে বিকল্প মেথডের নাম উল্লেখ করুন
- প্রথমে
false (warning) দিয়ে রিলিজ করুন, পরের ভার্সনে true (error) করুন
- লাইব্রেরি লেখার সময় বাধ্যতামূলকভাবে ব্যবহার করুন
[Obsolete("Use NewMethod instead", DiagnosticId = "MYLIB001", UrlFormat = "https://docs.example.com/{0}")] (C# 7+/ .NET 5+) — ডকুমেন্টেশন লিঙ্ক যোগ করা যায়