これらのキーワードに関するたくさんの質問。私は最初の30かそこらをふるいにかけ、それからあきらめました。
私はそのようなインターフェースを持っています:
public interface IColumnRule
{
int Length { get; set; }
string Name { get; set; }
object Parse(string toParse);
int Position { get; set; }
Type Type { get; }
}
public interface IColumnRule<T> : IColumnRule
{
ColumnRule<T>.RuleFluentInterface<T> Configure { get; }
new T Parse(string rowdata);
Func<string, T> ParsingFunction { get; set; }
}
...アイデアは、IColumnRule<T>
を利用して強く型付けされた列パーサーを作成するためにを実装することFunc<string, T>
です。
IColumnRule<T>
問題は、これらのコンクリートをIList<IColumnRule>
コンテナに保管することです。には複数のタイプがありIColumnRule<T>
、それぞれが異なるタイプに実装されています。インターフェイスでParse
メソッドを呼び出すとき、サブクラスのメソッドが呼び出されることを期待していますが、ベースは実際に呼び出されているものです。IColumnRule
new Parse(string)
Parse
インターフェイスの...T Parse(string)
を使用するコレクションからサブクラスジェネリックメソッドを呼び出すにはどうすればよいですか?またはこれは不可能ですか?IColumnRule
object Parse(string)