আমি কিছু ডেটা রূপান্তর করার চেষ্টা করছি। দুর্ভাগ্যক্রমে, বেশিরভাগ ডেটা স্ট্রিংগুলিতে থাকে, যেখানে এটি ইনট বা ডাবল ইত্যাদি হওয়া উচিত ...
আমি যা পেয়েছি তা হ'ল এরকম:
double? amount = Convert.ToDouble(strAmount);
এই পদ্ধতির সাথে সমস্যাটি হল যদি স্ট্রমাউন্টটি খালি থাকে, যদি এটি খালি হয় তবে আমি এটির পরিমাণটি শূন্য হতে চাই, সুতরাং যখন আমি এটি ডাটাবেসে যুক্ত করব তখন কলামটি বাতিল হবে। সুতরাং আমি এই লেখা শেষ:
double? amount = null;
if(strAmount.Trim().Length>0)
{
amount = Convert.ToDouble(strAmount);
}
এখন এটি সূক্ষ্মভাবে কাজ করে তবে আমার কাছে এখন একের পরিবর্তে পাঁচটি লাইন কোড রয়েছে। এটি জিনিসগুলিকে পড়া আরও জটিল করে তোলে, বিশেষত যখন আমার কাছে রূপান্তর করতে প্রচুর পরিমাণে কলাম থাকে।
আমি ভেবেছিলাম আমি স্ট্রিং ক্লাসে একটি এক্সটেনশন এবং জেনেরিকের ধরণটি পাস করার জন্য ব্যবহার করব, এটি কারণ এটি একটি ডাবল, বা কোনও ইনট বা দীর্ঘ হতে পারে। সুতরাং আমি এটি চেষ্টা করেছি:
public static class GenericExtension
{
public static Nullable<T> ConvertToNullable<T>(this string s, T type) where T: struct
{
if (s.Trim().Length > 0)
{
return (Nullable<T>)s;
}
return null;
}
}
তবে আমি ত্রুটিটি পেয়েছি: টাইপ 'স্ট্রিং' কে 'টি' তে রূপান্তর করতে পারি না?
এই সমস্যা এড়ানোর একটি উপায় আছে কি? জেনেরিকগুলি ব্যবহার করে পদ্ধতি তৈরি করার সাথে আমি খুব বেশি পরিচিত নই।