Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Один обобщенный метод вместо многих / 4 сообщений из 4, страница 1 из 1
08.08.2013, 12:24
    #38359462
VIT2708
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один обобщенный метод вместо многих
Есть много простых функций
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
private static int Income(string summ)
       {
           int s = 0;
           if (int.TryParse(summ, out s))
           {
               return s;
           }
           else
           {
               return 0;
           }
       }


Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
       private static Int64 Summ(string summ)
       {
           Int64 s = 0;
           if (Int64.TryParse(summ, out s))
           {
               return s;
           }
           else
           {
               return 0;
           }
       }



И хотел бы написать один обобщенный метод но как тогда сделать T.TryParse(......

Код: c#
1.
2.
3.
4.
5.
6.
private static T IntC<T>(string param)
       {
           T temp;
           if (T.TryParse(....           ){}
return temp;
       }



Спасибо.
...
Рейтинг: 0 / 0
08.08.2013, 12:42
    #38359491
Нахлобуч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один обобщенный метод вместо многих
В первом приближении:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
public delegate bool TryParse<T>(string value, out T result);

public class Parser
{
    public static T Parse<T>(string value, TryParse<T> tryParse)
    {
        T result;
        if(tryParse(value, out result))
            return result;

        return default(T);
    }
}

var result = Parser.Parse<int>("123131", int.TryParse);
...
Рейтинг: 0 / 0
08.08.2013, 12:47
    #38359500
VIT2708
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один обобщенный метод вместо многих
Нахлобуч,

Спасибо, буду пробовать
...
Рейтинг: 0 / 0
08.08.2013, 21:03
    #38360209
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один обобщенный метод вместо многих
VIT2708,
И че они его в интерфейс не упечатали ?...
Можно еще так имхо, на чернилах с экономить..
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
  static T Parse<T>(object  value)
        {
            try
            { 
                return  (T)Convert.ChangeType(value, typeof(T));
            }
            catch (FormatException ex)
            {
                return default(T);
            }
        }
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Один обобщенный метод вместо многих / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]