4

私は次のコードを持っています:

private const FlyCapture2Managed.PixelFormat f7PF = FlyCapture2Managed.PixelFormat.PixelFormatMono16;

public PGRCamera(ExamForm input, bool red, int flags, int drawWidth, int drawHeight) {
   if (f7PF == FlyCapture2Managed.PixelFormat.PixelFormatMono8) {
      bpp = 8;  // unreachable warning
   }
   else if (f7PF == FlyCapture2Managed.PixelFormat.PixelFormatMono16){
      bpp = 16;
   }
   else {
      MessageBox.Show("Camera misconfigured");  // unreachable warning
   }
}

このコードに到達できないことは理解していますが、さまざまな設定をテストするために定数を変更する必要があるコンパイル時の構成であり、ピクセルあたりのビット数 (bpp) がピクセル形式。1 つの変数だけを定数にして、そこからもう 1 つの変数を派生させるが、到達不能コードの警告が発生しないようにする良い方法はありますか? 両方の値が必要であることに注意してください。カメラの開始時に適切なピクセル形式に構成する必要があり、画像を理解するコードで画像が何ビットであるかを知る必要があります。

それで、良い回避策はありますか、それともこの警告を受け入れるだけですか?

4

4 に答える 4

2

Dictionary警告を回避するために、条件をルックアップに置き換えることができます。

private static IDictionary<FlyCapture2Managed.PixelFormat,int> FormatToBpp =
    new Dictionary<FlyCapture2Managed.PixelFormat,int> {
        {FlyCapture2Managed.PixelFormat.PixelFormatMono8, 8}
    ,   {FlyCapture2Managed.PixelFormat.PixelFormatMono16, 16}
    };
...
int bpp;
if (!FormatToBpp.TryGetValue(f7PF, out bpp)) {
    MessageBox.Show("Camera misconfigured");
}
于 2013-07-01T10:21:01.500 に答える
1

可能です、追加するだけです

#pragma warning disable 0162

あなたのフィールドの前に。復元するには、これを最後に置きます

#pragma warning restore 0162. 詳細はこちらMSDN

于 2013-07-01T10:20:12.640 に答える