C# で初めての Web サイトを作成しています。
IntelliSense で拡張メソッドが重複していることに気付きました。さらに調べたところ、次の 2 つでした。
public static void ThrowNullOrEmpty<T>(this IEnumerable<T> obj, string param)
{
}
public static void ThrowNullOrEmpty(this string obj, string param)
{
}
string もできるようIEnumerable<char>
です。
コンパイルの基礎から文字列バリアントを削除できますが、パフォーマンスの問題やその他の注意事項はありますか?
アップデート
100 万回以上の反復テストを行いました。
public bool IsNullOrEmpty1(string @this)
{
return String.IsNullOrEmpty(@this);
}
対
public bool IsNullOrEmpty2<T>(IEnumerable<T> @this)
{
return @this == null || !@this.Any();
}
IsNullOrEmpty1 は、開発マシン IsNullOrEmpty2 (125 - 250ms) で 12 ミリ秒のクロックを記録したため、10 - 20 倍遅くなりました。
現実の世界では、1 か月あたり 3,000 万回の反復という非常に高い数値を取りました。これは、1 分あたり 1,388 回 (1 日 12 時間) に相当します。結果は両方とも 1 ミリ秒未満でした。
したがって、 IsNullOrEmpty1 を削除することは最善の方法ではありませんが、サイト キラーでもありません。