Могу ли я использовать подтипы из универсального типа в качестве возвращаемого типа?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Могу ли я использовать подтипы из универсального типа в качестве возвращаемого типа?

Сообщение Anonymous »

В C++ я могу использовать подтипы из шаблона в качестве возвращаемого типа в функции следующим образом.

Код: Выделить всё

template
struct TypePair;

template
struct TypePair
{
using TypeA = unsigned;
using TypeB = signed;

static TypeB Convert(TypeA value)
{
return static_cast(value);
}
};

template
struct TypePair
{
using TypeA = float;
using TypeB = double;

static TypeB Convert(TypeA value)
{
return static_cast(value);
}
};

// and so on ...

template
typename TypePair::TypeB Convert(typename TypePair::TypeA value)
{
return TypePair::Convert(value);
}

int main()
{
auto value = Convert(5); // here I only need to specify the "input" type
return 0;
}
По сути, я хотел бы использовать в C# тот же способ, что и выше. Поэтому я определяю пару типов как вспомогательный тип (например, TypePair), а затем передаю в функцию только один тип в качестве одного параметра (например, функцию Convert). Затем тип возвращаемого значения должен определяться на основе вспомогательного типа с использованием типа шаблона.
Итак, могу ли я реализовать приведенный выше пример на C#? Я хочу вывести подтип как возвращаемый тип из универсального.

Подробнее здесь: https://stackoverflow.com/questions/791 ... eturn-type
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»