私は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)