हमारे पास यह कोड है, जो सरल होने पर, इस तरह दिखता है:
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किसी भी तरह से गलत आईडी दर्शाता है (यह कोड के लेखक की राय है; ;-))
2) आप यह जानने के लिए कॉल करने वाले पर भरोसा नहीं कर सकते कि 0यह एक गलत मूल्य है Idऔर जब Clientसंपत्ति को हमेशा सेट किया जाना चाहिए exception, getतो आपको Clientसंपत्ति को शून्य होने पर फेंक देना चाहिए
3) जब Clientसंपत्ति को हमेशा सेट किया जाना चाहिए, तो आप वापस लौटें Client.Idऔर कोड को NullRefअपवाद छोड़ दें जब Clientसंपत्ति शून्य हो।
इनमें से कौन सबसे सही है? या कोई चौथी संभावना है?