私はC#は初めてですが、プログラミングは初めてです。以下のコードで 2 つの文字列の長さを比較すると、エラーが発生します。
演算子「&」は、タイプ「bool」および「int」のオペランドには適用できません
どうやらstring1.Length > 0
、このコンテキストではブール値と見なされます。
この比較はどのように実行すればよいですか?
if (string1.Length > 0 & string2.Length = 0)
{
//Do Something
}
私はC#は初めてですが、プログラミングは初めてです。以下のコードで 2 つの文字列の長さを比較すると、エラーが発生します。
演算子「&」は、タイプ「bool」および「int」のオペランドには適用できません
どうやらstring1.Length > 0
、このコンテキストではブール値と見なされます。
この比較はどのように実行すればよいですか?
if (string1.Length > 0 & string2.Length = 0)
{
//Do Something
}
エラーの理由は、=
意図したときに書いたためです==
。C# の場合
string1.Length > 0 & string2.Length = 0
意味
(string1.Length > 0) & (string2.Length = 0)
左側bool
の型は で、右側の型は です。これは一緒に -edint
できないため、エラーになります。&
もちろん、それを乗り越えたLength
としても、任務の対象にはなりません。
==
等しいかどうかをテストするために使用します。=
課題です。
&&
の代わりに使用することも検討してください&
。の意味は、x & y
「両方を評価し、結果はtrue
両方がそうである場合true
とfalse
そうでない場合である」です。の意味は、x && y
「左側を評価しfalse
、結果がfalse
そうである場合は右側を評価しない。左側がそうである場合はそのままtrue
続行する&
」です。
整数に適用される場合、&
C# の演算子は論理AND
ではなくビット単位AND
です。また=
、等値比較演算子ではなく代入です。string1.Length > 0
式は確かにブール型の式ですが、代入は整数です (整数であるため) 0
。
必要なのは
if (string1.Length > 0 && string2.Length == 0)
おそらくこれを行うつもりでした:
if (string1.Length > 0 && string2.Length == 0)
{
//Do Something
}
C# では、=
演算子は代入のみを目的としています。は==
等値比較に使用されます。(最初の条件が false と評価された場合、2 番目の条件をスキップします)の&&
代わりに演算子を使用することもできます。&
&&
ただし、本当に「文字列の長さを比較」したい場合は、次のようにするだけです。
if (string1.Length > string2.Length)
{
//Do Something
}
これで問題が解決します。
if(string1.Length > 0 && string2.Length == 0)