if文での評価はbool型のみしか受け付けない
プログラミングC# 第6版 2.7.1
C#ではifで値を評価する際に、bool型以外は使用できないようです。
using System; class Program { static void Main() { int i = 0; if ( i ) { // iはintなのでコンパイルエラー Console.WriteLine("Hello, World!"); } } }
$ csc main.cs Microsoft (R) Visual C# 2008 Compiler version 3.5.30729.1 for Microsoft (R) .NET Framework version 3.5 Copyright (C) Microsoft Corporation. All rights reserved. main.cs(8,11): error CS0029: 型 'int' を型 'bool' に暗黙的に変換できません。
このようにコンパイルエラーとなります。これを正しく動かすためには以下のようにしなくてはなりません。
using System; class Program { static void Main() { int i = 0; if ( i != 0 ) { // 比較演算子はbool型が返る Console.WriteLine("Hello, World!"); } } }