নিম্নলিখিত সাধারণ দৃশ্য বিবেচনা করুন:
if(myObject == null) {
myObject = new myClass();
}
নাল-কোলেসিং অপারেটরটি ব্যবহার করে নিম্নলিখিত প্রতিস্থাপনের বিষয়ে কী ভাবা হচ্ছে তা আমি ভাবছি:
myObject = myObject ?? new myClass();
আমি নিশ্চিত না যে আমার দ্বিতীয় ফর্মটি ব্যবহার করা উচিত। দেখে মনে হচ্ছে এটি একটি দুর্দান্ত শর্টহ্যান্ড, তবে myObject = myObject
শুরুতে নির্মাণটি মনে হচ্ছে এটি কিছুটা গন্ধযুক্ত হতে পারে।
এটি করার মতো কি যুক্তিসঙ্গত জিনিস, বা এর চেয়ে ভাল শর্টহ্যান্ড যা আমি মিস করছি? অথবা হতে পারে, "এটি তিনটি লাইন, এটি পেরে উঠুন!"?
সম্পাদনা: যেমনটি উল্লেখ করা হয়েছে, সম্ভবত এটিকে একটি সাধারণ দৃশ্যের কথা বলা অত্যান্ত বাড়াবাড়ি। আমি সাধারণত দেখতে পাই যে আমি যখন একটি ডাটাবেস থেকে এমন একটি সত্তা পুনরুদ্ধার করছি যেখানে একটি শিশু রেফারেন্স ধরণের সম্পত্তি রয়েছে যা এখনও জনবসতিযুক্ত বা নাও হতে পারে:
myClass myObject = myClassService.getById(id);
myObject.myChildObject = myObject.myChildObject ?? new myChildClass();
MyClass
একটি public static readonly
সদস্য সরবরাহ করা উচিত Empty
। String.Empty
এমএসডিএন-এ দেখুন ।
??=
অপারেটর?