У меня есть метод C # что-то вроде:
private static IEnumerable<T2> SomeMethod<T1, T2>(IEnumerable<T1> arg1)
{
}
и я хотел бы иметь возможность сделать некоторую условную логику, чтобы, если T1 - это A, то T2 - это B и так далее. Это не проблема, если у меня есть эти два ограничения. Однако, что, если я также хотел логику, например, если T1 - это C, то T2 - это D.
Проверка может быть выполнена методом, конечно, но проверка времени компиляции была бы предпочтительнее.
Я хотел бы указать это в общем выражении where метода.
Есть ли способ сделать это на C # или любом другом языке .net?
Для получения дополнительной информации T1 в основном является объектом данных, а T2 является спецификатором, который относится к объекту данных T1. Все действительные T1 - это определенный базовый класс, в то время как все действительные T2 - это другой базовый класс. Это два разных класса, но всегда используются вместе.
Проблема, которую я пытаюсь избежать, заключается в наличии в коде данных и другого спецификатора, который не совпадает с данными, передаваемыми вместе.