私はジェネリックスに不慣れで、助けが必要です。
すべての「トランスフォーマー」クラスが実装するためのインターフェースを作成したいと思います。「トランスフォーマー」になるには、クラスに少なくとも1つのバリエーションが含まれている必要がありますT mapTo<T>(T t)
。
トランスフォーマーの使用方法は次のとおり
です。いくつかのメソッドをオーバーロードします...すばらしいです!簡単そうです!
public class Transformer : ITransformer
{
public Transformer(IPerson instance)
{
}
public XmlDocument mapTo(XmlDocument xmlDocument)
{
// Transformation code would go here...
// For Example:
// element.InnerXml = instance.Name;
return xmlDocument;
}
public UIPerson maptTo(UIPerson person)
{
// Transformation code would go here...
// For Example:
// person.Name = instance.Name;
return person;
}
}
ジェネリックスを使用してインターフェースを定義しましょう:素晴らしい
アイデアです!
public interface ITransformer
{
T MapTo<T>(T t);
}
問題:
インターフェースでジェネリックスを使用する場合、私の具象クラスは文字通り以下を実装することを余儀なくされます:
public T MapTo<T>(T t)
{
throw new NotImplementedException();
}
これはクラスの見た目を醜くします
public class Transformer : ITransformer
{
public Transformer(IPerson instance)
{
}
public XmlDocument MapTo(XmlDocument xmlDocument)
{
// Transformation code would go here...
// For Example:
// element.InnerXml = instance.Name;
return xmlDocument;
}
public UIPerson MapTo(UIPerson person)
{
// Transformation code would go here...
// For Example:
// person.Name = instance.Name;
return person;
}
public T MapTo<T>(T t)
{
throw new NotImplementedException();
}
}