タイプパラメータを受け取るいくつかのメソッドを含むAPIがあります。私は現在、APIの改善(よりタイプセーフ)の一環として、それらをジェネリックメソッドに変換していますが、下位互換性のために非ジェネリックバージョンを維持しています。
現在-廃止予定:
public object MyMethod(object value, Type expectedType)
新しい:
public T MyMethod<T>(object value)
ただし、Mymethodは、タイプパラメータも受け取るプライベートヘルパーメソッドを呼び出します。
private object HelperMethod(object value, Type expectedType)
質問:このプライベートヘルパーメソッドもジェネリックにする必要がありますか?
以下に私自身の答えがありますが、何かが足りないかどうか知りたいです。私はあなたの洞察にとても感謝しています。
私の答えはノーです。このプライベートメソッドをジェネリックにするべきではありません。
理由1:このヘルパーメソッドはプライベートであるため、ジェネリックにしたとしても、APIは改善されません。
理由2:ジェネリックにすると、非ジェネリックパブリックメソッドはリフレクションを使用してtypeパラメーターをこのジェネリックメソッドに渡す必要があります。これは、オーバーヘッドが増えることを意味します。