このコードは、簡略化すると次のようになります。
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; }
}
現在、3つの視点があります。
1)Client
プロパティは常に設定される必要があるため(つまりnullではない)、これは適切なコードでClient == null
あり、Id値0
は偽のIDを示します(これはコードの作成者の意見です;-))
2)が0
偽の値であることを呼び出し元に依存することはできません。Id
また、 Client
プロパティを常に設定する必要exception
があるget
場合は、Client
プロパティがnullになったときにをスローする必要があります。
3)Client
プロパティを常に設定する必要がある場合は、プロパティがたまたまnullの場合に戻りClient.Id
、コードにNullRef
例外をスローさせClient
ます。
これらのうちどれが最も正しいですか?または、4つ目の可能性はありますか?