0
class Program {

        static bool? a = null;
        static bool b = false;

        static void Main( string[] args ) {
            //1
            if( a!=null ) {
                b = (bool) a;
            }
            //2
            if( a!=null && (b=(bool) a) ) { }
        }
    }

ケース1とケース2の違いはありますか?

4

3 に答える 3

6

得られる値に関しては、b機能的には同じです。

ただし、nullable を使用しているため、その機能を使用する必要があります。

if(a.HasValue)
   b = a.Value;
于 2012-05-04T13:45:39.610 に答える
1

または、次のように書くこともできます。

b = (a.HasValue) ? a.Value : b;

@Odedの答えが最高だと言わざるを得ませんが。

于 2012-05-04T13:47:37.267 に答える
0

はい、ケース 1 は a が null でない場合に起動し、ケース 2 は a が null でない場合にのみ起動し、かつ b = bool a の場合にのみ起動します

于 2012-05-04T13:45:50.620 に答える