uint
確かに、符号なし整数 ( ) と符号付き整数 ( ) の基本的な違いは知っていますint
。
Length
.NET パブリック クラスでは、呼び出されたプロパティが常に符号付き整数を使用していることに気付きました。
おそらくこれは、符号なし整数が CLS に準拠していないためです。
ただし、たとえば、私の静的関数では:
public static double GetDistributionDispersion(int tokens, int[] positions)
のパラメーターtokens
とすべての要素をpositions
負にすることはできません。負の場合、最終結果は役に立ちません。したがって、 forとのint
両方を使用すると、この関数が呼び出されるたびに値をチェックする必要があり (そして、意味のない値を返すか、負の値が見つかった場合は例外をスローする???)、面倒です。tokens
positions
uint
では、両方のパラメーターに使用する必要があります。これは本当に理にかなっています。
しかし、多くのパブリック API と同様に、ほとんど常にint
. それは、実装内で、各値の負性を常にチェックすることを意味しますか (負でないことが想定されている場合)?
では、一言で言えば、どうすればよいのでしょうか。
2つのケースを提供できます:
- この関数は、私自身のソリューションでのみ呼び出されます。
- この関数は、他のチームの他のメンバーによってライブラリとして使用されます。
これら 2 つのケースに異なるスキームを使用する必要がありますか?
ピーター
PS: 私は多くの調査を行いましたが、使用しないように説得する理由はまだありませんuint
:-)