3

strObject という文字列変数に格納されるサーバーからのメッセージを渡しています。strObject 内の文字列を大文字に変換したいと考えています。そこで、ToUpper() メソッドを使用します。しかし、ブレークポイントを追加して行を通過すると、文字列が大文字に変換されません。strObject 変数には、常にテキスト Task_status が含まれます。TASK_STATUSに変換したい。何か不足していますか?以下に私の関連コードを投稿してください: -

public void VerifyValue(String strObject, String strValue, int row)
        {               
            strObject.ToUpper().Trim();
            strValue.ToUpper().Trim();
            switch (strObject)
            {
                case "TASK_STATUS":
                    if (m_taskStatus.taskStatus.ToString() == strValue)
                    {
                        ExcelRecorder(null, row);
                    }
                    else
                    {
                        ExcelRecorder("The value [" + m_taskStatus.taskStatus.ToString() + "] does not match with the given value.", row);
                    }
            }
        }
4

6 に答える 6

7

strObject.ToUpper()string大文字でa を返します

以下を使用してください...

strObject = strObject.ToUpper().Trim();
于 2012-07-09T10:19:38.823 に答える
6

ASystem.Stringは不変であるため、次のように再割り当てする必要があります。

strObject = strObject.ToUpper().Trim(); 

文字列を操作するすべてのメソッドは、元の文字列を変更せずにそのままにして、目的の内容の新しい文字列を返します。その戻り値を取得して、何かに割り当てる必要があります。

于 2012-07-09T10:20:35.273 に答える
2

string.ToUpper()値を返します。それを使用します。

于 2012-07-09T10:20:33.367 に答える
2

文字列は不変であるため、文字列に対して関数を呼び出しても実際には文字列は変更されません。代わりに、文字列の変更されたコピーを返します。

これは、たとえば元の変数に、関数の戻り値を格納する必要があることを意味します。

于 2012-07-09T10:21:42.823 に答える
1

文字列は不変であるため、これは機能しません。値を再度割り当てる必要がありますstrObject

strObject = strObject.ToUpper().Trim();

またswitch、コードに示されているように、によって行われることはあまりありません。これがコード全体でない限り、削除できます。

public void VerifyValue(String strObject, String strValue, int row)
{               
     //strObject.ToUpper().Trim();
     //strValue.ToUpper().Trim();
     if(strObject.ToUpper() ==  "TASK_STATUS")
     {
          if (m_taskStatus.taskStatus.ToString() == strValue.ToUpper())
          {
              ExcelRecorder(null, row);
          }
          else
          {
               ExcelRecorder("The value [" + m_taskStatus.taskStatus.ToString() + "] does not match with the given value.", row);
           }
       }
}
于 2012-07-09T10:20:59.547 に答える