আমি বর্তমানে আনকন্সট্রেইনডেলডি এর জন্য কিছু কোড লিখছি যা এনামগুলির সাথে জেনেরিক পদ্ধতি রয়েছে।
এখন, আমার কাছে প্রচুর পদ্ধতির একটি স্ট্যাটিক ক্লাস রয়েছে যা কেবল "পতাকা" এনামগুলিতে ব্যবহার করা। আমি এটিকে বাধা হিসাবে যুক্ত করতে পারি না ... সুতরাং এটি সম্ভব যে তাদের অন্যান্য এনাম ধরণের সাথেও ডাকা হবে। সেক্ষেত্রে আমি একটি ব্যতিক্রম ছুঁড়ে ফেলতে চাই, তবে কোনটি নিক্ষেপ করতে হবে তা আমি নিশ্চিত নই।
এই কংক্রিটটি তৈরি করতে, যদি আমার কাছে এরকম কিছু থাকে:
// Returns a value with all bits set by any values
public static T GetBitMask<T>() where T : struct, IEnumConstraint
{
if (!IsFlags<T>()) // This method doesn't throw
{
throw new ???
}
// Normal work here
}
নিক্ষেপের সেরা ব্যতিক্রম কী? ArgumentExceptionলজিক্যাল শোনাচ্ছে, কিন্তু এটি একটি এর টাইপ যুক্তি বদলে একটি স্বাভাবিক যুক্তি, যা পারা সহজে দ্বিধায় পরে জিনিস। আমার নিজের TypeArgumentExceptionক্লাস চালু করা উচিত ? ব্যবহার করবেন InvalidOperationException? NotSupportedException? আর কিছু?
আমি বরং না যদি না তা পরিষ্কারভাবে করার অধিকার জিনিস এই জন্য আমার নিজের ব্যতিক্রম তৈরি করুন।