1

MatchC# でa の値にアクセスするには、さまざまな方法があります。

Match mtch = //whatever
//you could do
mtch.Value
//or 
mtch.ToString()
//or
mtch.Groups[0].Value
//or 
mtch.Groups[0].ToString()

私の質問は次のとおりです。アクセスする最良の方法は何ですか?

(私はこれがマイクロ最適化であることを知っています、私はただ疑問に思っています)

4

3 に答える 3

0
  1. テストを書く
  2. 結果を読む
  3. 結果を考える

テストを作成したくない場合は、Microsoft Intermediate Language (MSIL) を見て、何がもっと時間がかかるかを考えてください。


私も結果でそれをテストしました

            // VS 2012 Ultimate
            // 
            Regex r = new Regex(".def.");
            Match mtch = r.Match("abcdefghijklmnopqrstuvwxyz", 0);
            string a, b, c, d;
            for (int i = 0; i < int.MaxValue; i++)
            {
               a = mtch.Value;                  // 1.4%
               b = mtch.ToString();             // 33.2%
               c = mtch.Groups[0].Value;        // 15.3%
               d = mtch.Groups[0].ToString();   // 44.1%
            }
于 2013-05-03T17:18:19.257 に答える
0

提供したサンプルに基づいて効率性について話している場合、最も効率的なのは最初のものだと思います。これを使用するToSting()と、変数に追加の変換機能が追加され、余分な時間がかかります。

于 2013-05-03T17:20:08.840 に答える