私は2つの変数を持っています。uintからintを減算できないのはなぜですか?
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のバックグラウンドから来ているので、これは私を混乱させます。
ここには何かがありますか?
この動作が他の言語と異なるのはなぜですか?
代替手段がありますか?
私は、これが新しい言語の旅行者であると考えています。
いいえ、私はアンダーフローに頼っていません。
uint' 'へint''から+ = X '変換'にYを実行するためにしなければなりません実行される。その変換は損失の多いコンパイラであるため、明示的に実行する必要があります。 – MarcinJuraszek