0

私はC#でこのようなものを持っています

        byte a;
        byte b;
        byte c;

        c = a + b;

c = a + b のエラーが発生し、「型 'int' を 'byte' に暗黙的に変換できません。明示的な変換が存在します (キャストがありませんか?)。すべてがバイト単位であるため、理由がわかりません。

Matlab から画像処理プログラムを c# に変換しているため、Matlab が関与しています。ここでは、uint8 である画像から値を取得し、その値を使用して計算を実行すると、unit8 が引き継ぎ、計算中に 255 を超える数値が設定されます。したがって、c# では、変数はすべて 255 未満であるため、すべての変数をバイトにしましたが、例のコードのように、計算を実行するとエラーがポップアップします。

4

2 に答える 2

1

代入演算子の右側の算術式は、デフォルトで int に評価されます

バイトを参照- MSDN

次の代入ステートメントでは、代入演算子の右側の算術式がデフォルトで int に評価されるため、コンパイル エラーが発生します。

byte x = 10, y = 20;
byte z = x + y;   // Error: conversion from int to byte

明示的なキャストを追加すると、エラーは次のようになります。

byte z = (byte)(x + y);   
于 2013-07-11T18:00:46.563 に答える