-1

現在、辞書の値が一致するかどうかを確認するためのテストをいくつか書いています。例は「TestOperatorMatchNotFoundIfValueNotNumeric」などです。文字列を文字列と比較するときにテストを正常に作成しましたが、値が数値でないかどうかを確認する必要があります (無効にする)

以前のテストで使用したロジックを微調整して使用しようとしましたが、「演算子 '==' はタイプ 'string' および 'decimal' のオペランドに適用できません」というエラー メッセージが表示されます。以下は、8 行目と 9 行目に表示される 2 つのエラー メッセージを処理するコードです。

 public bool IsMatch(Dictionary<String, String> variableData)
    {
        decimal outputValue;
        bool isANumber = Decimal.TryParse("StringValue", out outputValue);

        if (variableData.ContainsKey(this.value1Name))
        {
            if (comparisonOperator == "==")
            {
                if (variableData[this.value1Name] == this.value2Literal) //Error Msg
                {
                    return true;
                }
            }
            else
            {
                if (variableData[this.value1Name] != this.value2Literal) //Error Msg
                {
                    return true;
                }
            }
        }

        return false;
    }
4

1 に答える 1

1

1.00 == "1.00" を比較することはできません。Convert.ToDecimal("1.00") を比較して比較することはできます。しかし、私はそれをお勧めしません。

辞書に文字列値があることがわかります。

あなたのコードは次のようになります

Convert.ToDecimal(variableData[this.value1Name]) == this.value2Literal
于 2013-08-23T09:01:53.437 に答える