1. ホーム
  2. c#

[解決済み] C#で負にできない値にはuintを使うべきですか?

2023-03-15 13:31:44

質問

長さ・回数などのプロパティが多数あるクラスを実装してみたところ uint ではなく int . しかし、そうしているうちに、実は誰もそんなことをしたくないかのように、そうすることが苦痛であることに気がつきました。

積分型を渡すものはほとんどすべて int を返すので、いくつかの点でキャストが必要です。私は StringBuffer を構築し、そのバッファの長さをそのクラスのフィールドの1つにデフォルト設定したかったのです。これもキャストが必要です。

そこで私は、単に int に戻すべきかどうか。どうせ全部の範囲を使っているわけではありませんから。ただ、そこで扱っているのは単に はできません。 が負になることはありえないので(もしそうならエラーになります)、実際に uint .

追伸:私が見たのは この質問 で、これは少なくともフレームワーク自身がなぜ常に int を使う理由を説明しますが、自分のコードの中でさえも uint にこだわるのは実は面倒で、どうやらあまり求められていないような気がします。

どのように解決するのですか?

厳密には uint を使うべきですが、それが必ずしも現実的でない理由の1つに遭遇しました。

この場合、キャストをしなければならないことによる可読性の低下は、それに見合うとは思えません。