Надо описать функцию
От: Панкратов Александр  
Дата: 29.05.08 21:38
Оценка:
Возникла следующая задача:

Надо реализовать на C# функцию которая бы возвращала значение того типа, который в нее передается. То есть
myFunc(int i) вернет нечто типа int, а myFunc(string s) вернет нечто типа s
И вот никак мне — недалекому парню — не удается такую функцию описать.
Сильно подозреваю что делается это через дженерики, и даже копал в ту сторону, но либо несильно въехал в эти самые дженерики, либо копаю не там
Очень хотелось бы, чтобы старшие и более грамотные товарищи подсказали направление, в котором надо копать.
Заранее спасибо
Re: Надо описать функцию
От: Красин Россия  
Дата: 29.05.08 21:41
Оценка:
Здравствуйте, Панкратов Александр, Вы писали:

Например, отличная функция, которая удовлетворяет описанию:
public static T Get(T value) 
{
  return value;
}


Если у вас задача более конкретна, не стесняйтесь, пишите сюда.
Re[2]: Надо описать функцию
От: Панкратов Александр  
Дата: 29.05.08 21:51
Оценка:
Не стесняюсь

Задача в целом звучить так: функция для универсального преобразования типа скажем string. И целом реализация не очень важна — важно как ее описать и вызвать
Попробую привести пример.
Вызов должен выглядит так:

myFunc(string val1,T val2) — где T — любой тип.
Внутри функции(повторяю, реализация не очень важна, т.к. задача не прикладная) идет преобразование val1 в тип T и возвращаться должно значение типа T.
Re: Надо описать функцию
От: dmach Россия http://www.1Gb.ru
Дата: 29.05.08 21:55
Оценка: 3 (1)
Здравствуйте, Панкратов Александр, Вы писали:

ПА>Возникла следующая задача:


ПА>Надо реализовать на C# функцию которая бы возвращала значение того типа, который в нее передается. То есть

ПА>myFunc(int i) вернет нечто типа int, а myFunc(string s) вернет нечто типа s
ПА>И вот никак мне — недалекому парню — не удается такую функцию описать.
ПА>Сильно подозреваю что делается это через дженерики, и даже копал в ту сторону, но либо несильно въехал в эти самые дженерики, либо копаю не там
ПА>Очень хотелось бы, чтобы старшие и более грамотные товарищи подсказали направление, в котором надо копать.
ПА>Заранее спасибо


        static T Function<T>(T value)
        {
            return value;
        }


Вызвать можно, соответственно, без указания <type>, то есть


        Console.WriteLine(Function("Goodbye, World!"));
Re[2]: Надо описать функцию
От: Панкратов Александр  
Дата: 29.05.08 22:21
Оценка:
Ага. Ну вот и открылся пробел в моих знаниях про дженерики Не знал что можно вызывать без явного указания type
Огромное спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.