私は2つの変数を持っています。
int x = 1;
uint y = 2;
タイプは と のままintでなければなりませんuint。しかし、それらを使って基本的な算術を実行することはできません。
y += x;
タイプ 'int' を 'uint' に暗黙的に変換することはできません。明示的な変換が存在します (キャストがありませんか?)
だから私は毎回このようなことをしなければなりませんか?
if (x < 0)
{
y -= (uint)Math.Abs(x);
}
else
{
y += (uint)x;
}
C/C++/Java のバックグラウンドから来ると、これは私を混乱させます。
私がここに欠けているものはありますか?
この動作が言及されている他の言語と異なるのはなぜですか?
より良い代替手段はありますか?
これは、言語の初心者にとってよくある旅行だと思います。
いいえ、私はアンダーフローに頼っていません。