আমি এরকম কিছু করতে চাই:
myYear = record.GetValueOrNull<int?>("myYear"),
জেনেরিক প্যারামিটার হিসাবে nallable টাইপ লক্ষ্য করুন।
যেহেতু GetValueOrNull
ফাংশনটি শূন্য হতে পারে আমার প্রথম প্রচেষ্টাটি ছিল:
public static T GetValueOrNull<T>(this DbDataRecord reader, string columnName)
where T : class
{
object columnValue = reader[columnName];
if (!(columnValue is DBNull))
{
return (T)columnValue;
}
return null;
}
তবে আমি এখন যে ত্রুটিটি পাচ্ছি তা হ'ল:
টাইপ 'ইনট?' জেনেরিক টাইপ বা পদ্ধতিতে প্যারামিটার 'টি' হিসাবে এটি ব্যবহার করার জন্য অবশ্যই একটি রেফারেন্স টাইপ হতে হবে
রাইট! Nullable<int>
একটি struct
! সুতরাং আমি শ্রেণি বাধাকে সীমাবদ্ধতায় পরিবর্তন করার চেষ্টা করেছি struct
(এবং পার্শ্ব প্রতিক্রিয়া হিসাবে আর কোনও ফিরে আসতে পারে না null
):
public static T GetValueOrNull<T>(this DbDataRecord reader, string columnName)
where T : struct
এখন অ্যাসাইনমেন্ট:
myYear = record.GetValueOrNull<int?>("myYear");
নিম্নলিখিত ত্রুটি দেয়:
টাইপ 'ইনট?' জেনেরিক টাইপ বা পদ্ধতিতে প্যারামিটার 'টি' হিসাবে এটি ব্যবহার করার জন্য অবশ্যই একটি নন-অযোগ্য মান ধরণ হতে হবে
জেনেরিক প্যারামিটার হিসাবে কোনও নালযোগ্য ধরণটি কি সম্ভব সম্ভব?
IDataRecord
থেকেDbDataRecord
..