Я пытаюсь сделать свой код максимально пригодным для повторного использования и столкнулся с проблемой при попытке передать аргумент-конструктор в класс, используемый в качестве параметра типа.
В настоящее время у меня естьthis:
public sealed class SubmitForm : DerivedClass
{
}
public void TestMethod_Simulated()
{
var foo = GetObject<SubmitForm>();
SubmitData(foo);
}
private void SubmitData(SubmitForm form)
{
// Do work
}
public T GetObject<T>()
where T : class
{
// Work
}
Это работало, потому что не было явного конструктора и параметра для SubmitForm.Однако я хочу расширить функциональность и потребовать явного конструктора, ожидающего аргумент.
После добавления конструктора я хочу вызвать «GetObject» с параметром типа «SubmitForm», ВКЛЮЧАЯ аргумент для его явного конструктора.
Это явно невозможно каким-либо простым способом, но я не хочу верить, что нет способа заставить это работать.
Ниже показано, чего я пытаюсь достичь, который должен использовать класс в качестве параметра типа при создании его экземпляра для доступа к созданному мной конструктору:
public sealed class SubmitForm : DerivedClass
{
public SubmitForm(EnumType typeVar)
{
_derivedVar = typeVar;
}
}
public void TestMethod_Simulated()
{
var foo = GetObject<new SubmitForm(EnumType.FormA)>();
SubmitData(foo);
}
private void SubmitData(SubmitForm form)
{
// Do work
}
public T GetObject<T>()
where T : class
{
// Work
}
Надеюсь, это имеет смысл.Я не могу найти способ сначала создать экземпляр класса И затем использовать его в качестве параметра типа.