このメソッドは、リスト全体で最初に出現したアイテムのゼロベースのインデックスをList<T>.IndexOf()
返します(見つかった場合)。それ以外の場合、–1。
それと、 Code Completeで読んだばかりのこととの間に類似点が見られます。これは、「隠された意味を持つ変数を避ける」ように指示しています。
次に例を示します。変数pageCountの値は、-1に等しくない限り、印刷されたページ数を表す場合があります。-1に等しい場合は、エラーが発生したことを示します。
まあ、それが十分に明確に文書化されているので、意味が「隠されている」かどうかはわかりませんが、nullは-1よりも良い意味を私に伝えているようです。.HasValueは>-1よりもはるかに良いチェックのように読めます。私の知る限り、List型とnull許容型はどちらもC#2.0で導入されたため、再調整する理由はint
下位互換性とは関係がないと思います。それで、理由があったのか、それとも誰かが実装するのを忘れただけなのか、そして私たちは今、その間違いに永遠に耐えなければならないのかどうか知っていますか?