Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
2 / 2 / 0
Регистрация: 23.01.2014
Сообщений: 24

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

19.12.2014, 17:34. Показов 1860. Ответов 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.12.2014, 17:34
Ответы с готовыми решениями:

Как проверить, что тип T является типом Nullable<T1>?
Как проверить, что тип T является типом Nullable&lt;T1&gt;, где T1 неизвестный тип?

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

Обобщенный метод преобразовать в метод с параметром типа
Добрый день! Есть метод: public void FillListAndDGV&lt;T&gt;(List&lt;Expression&lt;Func&lt;T, object&gt;&gt;&gt; Expr) where T : class ...

3
 Аватар для Metall_Version
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
19.12.2014, 18:02
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
2 / 2 / 0
Регистрация: 23.01.2014
Сообщений: 24
19.12.2014, 18:09  [ТС]
Ага спасибо, с ValueType работать будет, конечно может понадобится тип T как массив например.
Но походу универсального решения нету.
огромное спасибо!!
0
 Аватар для Metall_Version
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
19.12.2014, 23:38
возможно напишите что должен делать метод, тогда и решение найдется

Добавлено через 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.12.2014, 23:38
Помогаю со студенческими работами здесь

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

Обобщенный метод
class C&lt;T extends Number&gt; { private T o; private T o2; C(T o, T o2){ this.o = o; this.o2 = o2; }

Обобщенный метод
Привет! есть метод, суть которого в следующем Type T2din=array of integer; function GetNewArr(arr1, arr2 : T2din) : T2din;...

Обобщенный градиентный метод
скиньте пожалуйста полноценный пример или понятную теорию, не могу нагуглить у меня функция двух переменных. нашел алгоритм: 1.найти...

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru