0

クラスのメソッド内で「==」演算子を回避するためのカスタムルールを追加したいと思います。たとえば、以下のメソッドでは、string.Compare(str1、str2、StringComparison.Ordinal);で'str1==str2'を回避する必要があります。。したがって、このタイプのコードがいずれかのメソッドに表示されることを確認する必要があります

public void StringTest2()
    {
        string str1 = "Hello";
        string str2 = "HELLO";
        if (str1 == str2)
        {
        }
    }
4

2 に答える 2

1

いやだっていうだけだよ。

string == 演算子はすでに序数比較を実行しており、使用を主張するよりもかなり読みやすい IMO ですstring.Compare

明示的に序数の文字列比較必要な場合でも、string.Equals(string, string, StringComparison)代わりに. を使用することをお勧めしCompareます。

于 2012-11-02T10:58:21.747 に答える
0
**The below code checks both the assignment and equal to operator in an assembly**


public override ProblemCollection Check(Member member)
            {
                var method = member as Method;
                if (method == null)
                    return null;
                if (method.Instructions.Count > 0)
                {
                    foreach (var instruction in method.Instructions)
                    {
                        if (instruction != null)
                            if ( instruction.OpCode == OpCode.Ceq)
                            {
                                var resolution = GetResolution(member.Name.Name);
                                var problem = new Problem(resolution, member)
                                                  {
                                                      Certainty = 95,
                                                      FixCategory = FixCategories.Breaking,
                                                      MessageLevel = MessageLevel.Warning
                                                  };
                                Problems.Add(problem);
                            }
                    }
                }
                return base.Problems;
            }
于 2012-11-05T13:00:03.773 に答える