web-dev-qa-db-ja.com

intをブール値に変換するより良い方法

入力int値は1または0のみで構成されています。if elseステートメント。

intbooleanにキャストする方法はありませんか?

27
DeepSea

私が想定し 0falseを意味します(多くのプログラミング言語の場合)。つまり、truenot 0(一部の言語では-1他の一部は1;どちらとも互換性があることを害しません)。したがって、「より良い」とはタイピングが少ないことを意味すると仮定すると、次のように書くことができます。

bool boolValue = intValue != 0;
69
Corak
int i = 0;
bool b = Convert.ToBoolean(i);
80
Evelie

冗談はさておき、入力整数がゼロまたは1だけであると予想している場合は、実際にこれが当てはまることを確認する必要があります。

_int yourInteger = whatever;
bool yourBool;
switch (yourInteger)
{
    case 0: yourBool = false; break;
    case 1: yourBool = true;  break;
    default:
        throw new InvalidOperationException("Integer value is not valid");
}
_

すぐに使えるConvertはこれをチェックしません。 yourInteger (==|!=) (0|1)もしません。

4
Rawling