Допустим, у меня есть следующие:Общий класс в C#
public class DataType1
{
public DataType1() { }
public string Read() { return "dt1"; }
}
public class DataType2
{
public DataType2() { }
public string Read() { return "dt2"; }
}
и утилиту класса:
Затем в моем главном приложении:
class Program
{
static void Main(string[] args)
{
var test1 = new Logger<DataType1>();
test1.Read(); // I want this to equal "dt1";
var test2 = new Logger<DataType2>();
test2.Read(); // I want this to equal "dt2";
}
}
я понимаю, что Я пытаюсь сделать вид ковариации. Тем не менее, я не могу DataType1/DataType2 наследовать от Logger - это было бы против архитектуры (т. Е. DataType1/DataType2 находятся в DAL, и программисты должны пройти через Logger, чтобы добраться до DAL).
Любые мысли о том, как я мог это сделать?
Спасибо.
класс 'Logger где T: SomeInterfaceWithReadMethod' –
leppie