Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
aldmi
2 / 2 / 3
Регистрация: 23.01.2014
Сообщений: 24
#1

Обобщенный метод с Nullable типом - C#

19.12.2014, 17:34. Просмотров 522. Ответов 3
Метки нет (Все метки)

Здравствуйте уважаемые!

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
        protected T ConvertPresenter<T>(dynamic val, Func<bool> pridicate) where T : [COLOR="red"]class[/COLOR] 
        {
 
            var tempVal = (T)Convert.ChangeType(val, typeof(T));
            return pridicate() ? tempVal :  null;
   
        }
 
 
        public override dynamic PresenterVal
        {
            set
            {
                ushort? val = ConvertPresenter<[COLOR="Red"]ushort?[/COLOR]>(Value, () => true);
                if (val.HasValue)
                    ValBin = BitConverter.GetBytes(val.Value);
            }
 
            get
            {
                return val;
            }
        }
как заставить ConvertPresenter использовать тип ushort? при вызове.
если убрать
C#
1
where T : class
то функция не сможет вернуть null.

Прошу помочь, скорее всего где то туплю)).

Заранее всем спасибо за сотрудничество!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2014, 17:34
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Обобщенный метод с Nullable типом (C#):

Передача типа nullable в метод
Добрый день! Имеется функция: void modeFunc(double? param){ param=5;...

Обобщенный метод преобразовать в метод с параметром типа
Добрый день! Есть метод: public void...

Обобщенный метод сортировки массива
Что-то не пойму, в чем проблема. Точнее, вижу, что мне пишет VS, но не пойму,...

Рихтер, обобщенный метод, требуется разжевать
Отрывок из книги: private static void Display(String s) { ...

Обобщенный метод для сравнения двух чисел
Как создать метод, который будет сравнивать 2 числа с 0 и если они будут оба...

Обобщенный метод для двух разных типов
есть два класса - разные , которые ничем не отличаются, как мне сделать общий...

3
Metall_Version
2116 / 1253 / 516
Регистрация: 04.03.2014
Сообщений: 4,094
Завершенные тесты: 2
19.12.2014, 18:02 #2
aldmi, мб так ?
C#
1
2
3
4
5
        static Nullable<T> ConvertPresenter<T>(dynamic val, Func<bool> pridicate) where T:struct
        {
            T? tempVal = (T)Convert.ChangeType(val, typeof(T));
            return pridicate() ? tempVal : null;
        }
Добавлено через 29 секунд
как сделать обобщенным для классов и структур хз.
1
aldmi
2 / 2 / 3
Регистрация: 23.01.2014
Сообщений: 24
19.12.2014, 18:09  [ТС] #3
Ага спасибо, с ValueType работать будет, конечно может понадобится тип T как массив например.
Но походу универсального решения нету.
огромное спасибо!!
0
Metall_Version
2116 / 1253 / 516
Регистрация: 04.03.2014
Сообщений: 4,094
Завершенные тесты: 2
19.12.2014, 23:38 #4
возможно напишите что должен делать метод, тогда и решение найдется

Добавлено через 5 часов 24 минуты
aldmi, вариант для структур и классов, костыль какой-то,
правда нафига он нужен, и зачем бы знать еще
C#
1
2
3
4
5
6
7
8
9
10
11
12
        static T ConvertPresenter<T>(dynamic val, Func<bool> pridicate)
        {
            try
            {
                var tempVal = (T)Convert.ChangeType(val, typeof(T));
                return pridicate() ? tempVal : default(T);
            }
            catch (Exception)
            {
                return default(T);
            }
        }
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2014, 23:38
Привет! Вот еще темы с решениями:

Как создать обобщенный метод для умножения чисел?
Как сделать универсальный метод, который будет перемножать переменные? Пример...

Обобщенный и не обобщенный класс с одинаковым именем
Добрый день! Task&lt;int&gt; task = Task.Run(() =&gt; { Console.WriteLine(&quot;Foo&quot;);...

Метод с возвращающим типом (bool)
public bool Helat() using System; public class Animal0 { ...

Передача значения с типом DateTime в метод
Есть класс, в котором присутствует поле с типом DateTime, есть конструктор,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru