Match
C# でa の値にアクセスするには、さまざまな方法があります。
Match mtch = //whatever
//you could do
mtch.Value
//or
mtch.ToString()
//or
mtch.Groups[0].Value
//or
mtch.Groups[0].ToString()
私の質問は次のとおりです。アクセスする最良の方法は何ですか?
(私はこれがマイクロ最適化であることを知っています、私はただ疑問に思っています)
テストを作成したくない場合は、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%
}
提供したサンプルに基づいて効率性について話している場合、最も効率的なのは最初のものだと思います。これを使用するToSting()
と、変数に追加の変換機能が追加され、余分な時間がかかります。