हमारे पास यह कोड है, जो सरल होने पर, इस तरह दिखता है:
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
संपत्ति शून्य हो।
इनमें से कौन सबसे सही है? या कोई चौथी संभावना है?