あなたが言ったようなことをすると、それはifブロックに入りません、そしてここに理由があります:
左側のオブジェクトには演算子が適用されます。したがって、コードはこれを書くのと同じです。
String myVar="in";
String testVar = myVar.ToUpper();
if(testVar=="in") //This will never be true
{
//do something
}
編集では、文字列が== "IN"であるかどうかをまだテストしていません。文字列が=="in"であるかどうかを確認するために、2つのテストを行っています。
オリジナルをこれに変更した場合、それは機能します:
String myVar="in";
if(myVar.ToUpper()=="IN")
{
//do something
}
両方のケースをテストするには、次のように編集する必要があります。
if((myVar.ToUpper().Equals("IN"))&&(myVar.Equals("in")))
編集:スティーブンのコメントからのいくつかのより多くの説明:
if((myVar.ToUpper().Equals("IN"))&&(myVar.Equals("in")))
そのコードサンプルは2つの比較を行いますが、myVarがin(IE:in In iN IN)の大文字と小文字が混在するバージョンのみである場合、2番目の比較は必要ありません。文字列をToUpper()に変換したら、それがINに等しいかどうかを確認するだけで済みます。したがって、その行を次のように置き換えます。
if(myVar.ToUpper().Equals("IN"))
また
if(myVar.ToUpper() == "IN")
私は個人的に.Equalsメソッドではなく==を使用します。