আমাদের কাছে এই কোডটি রয়েছে যা সরলীকরণের পরে দেখায়:
public class Room
{
public Client Client { get; set; }
public long ClientId
{
get
{
return Client == null ? 0 : Client.Id;
}
}
}
public class Client
{
public long Id { get; set; }
}
এখন আমাদের তিনটি দৃষ্টিভঙ্গি রয়েছে।
1) এটি ভাল কোড কারণ Client
সম্পত্তি সর্বদা সেট করা উচিত (অর্থাত নাল নয়) সুতরাং Client == null
কখনই ঘটবে না এবং আইডি মানটি 0
যাইহোক একটি মিথ্যা আইডিকে চিহ্নিত করে (এটি কোডের লেখকের মতামত ;-))
২) আপনি কলারের উপর নির্ভর করতে পারবেন না যে এটির জন্য 0
একটি ভ্রান্ত মূল্য Id
এবং Client
সম্পত্তি যখন সর্বদা সেট করা উচিত তখন যখন সম্পত্তিটি নালার দিকে exception
যায় get
তখন আপনাকে একটি নিক্ষেপ করা উচিতClient
3) Client
সম্পত্তিটি সর্বদা সেট করা উচিত যখন আপনি কেবল ফিরে Client.Id
আসুন NullRef
এবং Client
সম্পত্তিটি শূন্য হয়ে যাওয়ার পরে কোডটি একটি ব্যতিক্রম ছুঁড়তে দিন ।
এর মধ্যে কোনটি সবচেয়ে সঠিক? নাকি চতুর্থ সম্ভাবনা আছে?