Хорошо, поехали!Я пытаюсь сделать то, чего никогда не пробовал раньше, и ... C # укусил меня.
Дело в том, что моей программе нужно преобразовывать некоторые входные объекты в выходные объекты, причем многие в один выходили за раз.И нам нужен экземпляр для инстанциирования.
Я не уверен, что в данный момент я очень ясен ... Так что пример, иллюстрирующий это, будет лучше:
public class Class1
{
public interface ITranslatable { }
public interface ITranslatable<T> { }
public class OriginClass : ITranslatable { }
public class TargetClass : ITranslatable<OriginClass>
{
public TargetClass(OriginClass origin)
{
// Instantiate some properties from arg
}
}
public class Test
{
public Y Execute<X, Y>(X origin, Y target)
where X : ITranslatable
where Y : ITranslatable<X>, new()
{
target = new Y(origin); // <= How can I make this
// Some stuff
return target;
}
}
public TargetClass Function(OriginClass origin, TargetClass target)
{
var test = new Test();
return test.Execute(origin, target);
}
}