Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/21: Рейтинг темы: голосов - 21, средняя оценка - 5.00
26 / 1 / 1
Регистрация: 27.06.2021
Сообщений: 72
1
.NET 4.x

Ошибка: Оператор "+" невозможно применить к операнду типа "T" и "T"

17.09.2021, 11:46. Показов 4179. Ответов 3

Author24 — интернет-сервис помощи студентам
Добрый день. Помогите пожалуйста исправить ошибку.
Код (Ошибка в 3-ей строчке):
C#
1
2
3
4
static void Swap<T> (T a,T b)
{
    Console.WriteLine($"{a + b}");
}
Ошибка: Оператор "+" невозможно применить к операнду типа "T" и "T".

UPD: Я понимаю, что в T может влететь string или char и из-за этого компилятор ругается. Но как сделать ограничения против таких типов?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.09.2021, 11:46
Ответы с готовыми решениями:

Оператор "||" невозможно применить к операнду типа bool и int
Написал программу, чтобы определяла тип треугольника, но выдает ошибку. Можете помочь пожалуйста. ...

Оператор "||" невозможно применить к операнду типа bool и int
Здравствуйте, уважаемые читатели данной темы! Делаю консольный калькулятор с возможностью выбирать...

Вывести нечётные числа. Ошибка: оператор "%" невозможно применить к операнду типа "string" и "int"
Я новичок в программировании, поэтому не судите строго если тут всё говно. Нужно сделать, чтобы код...

Ошибка 0019 Оператор "+" невозможно применить к операнду типа "string" и "группа методов"
public string PrintEquiliteralTriangle() { AngleEquiliteralTriangel(); ...

Ошибка Оператор "-" невозможно применить к операнду типа "группа методов" и "int"
Ошибка CS0019 Оператор &quot;-&quot; невозможно применить к операнду типа &quot;группа методов&quot; и &quot;int&quot;. for (I =...

3
Эксперт .NET
6512 / 4088 / 1606
Регистрация: 09.05.2015
Сообщений: 9,554
17.09.2021, 12:15 2
Такое возможно только при использовании Preview фич из C#10 на .NET 6.

C#
1
2
3
4
        static void Swap<T>(T a, T b) where T: INumber<T>
        {
            Console.WriteLine($"{a + b}");
        }
https://habr.com/ru/post/572902/
1
26 / 1 / 1
Регистрация: 27.06.2021
Сообщений: 72
17.09.2021, 12:18  [ТС] 3
Цитата Сообщение от Someone007 Посмотреть сообщение
Такое возможно только при использовании Preview фич из C#10 на .NET 6.
Спасибо. А какое вы предложите решение для версии платформы 4.x?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
15893 / 11039 / 2857
Регистрация: 21.04.2018
Сообщений: 32,411
Записей в блоге: 2
17.09.2021, 13:46 4
Лучший ответ Сообщение было отмечено Shert как решение

Решение

Цитата Сообщение от Shert Посмотреть сообщение
А какое вы предложите решение для версии платформы 4.x?
Только отдельная перегрузка для каждого численного типа.

Добавлено через 7 минут
Shert, можно сделать используя dynamic.
Но это будет медленно и чревато исключениями во время исполнения.
1
17.09.2021, 13:46
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.09.2021, 13:46
Помогаю со студенческими работами здесь

Ошибка: "Оператор "||" невозможно применить к операнду типа "bool" и "string"."
Вот есть у меня консольное приложение, вот у него есть параметры запуска через консоль (args). ...

Найти легкую ошибку в коде Оператор "-" невозможно применить к операнду типа "double"
Здраствуйте! Подскажите как исправить ошибку на 41 строчке (x-b) using System; using...

Ошибка: Оператор "+" невозможно применить к операнду типа "(double, int)" и "double"
Добрый вечер, прошу неравнодушных помочь мне исправить ошибки в коде (Оператор &quot;+&quot; невозможно...

Error CS0023: Оператор "?" невозможно применить к операнду типа "T"
private static T F&lt;T&gt;(List&lt;(List&lt;T&gt; Left, List&lt;bool&gt; Right)?&gt; list) { return list?.Left ??...

Оператор == невозможно применить к операнду типа "int" и "string"
using UnityEngine; using System.Collections; public class Buttons : MonoBehaviour { ...

Оператор "!" невозможно применить к операнду типа "int"
Недавно начал писать на c# и столкнулся этой ошибкой: Оператор &quot;!&quot; невозможно применить к операнду...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Как клонировать определенную ветку в Git
bytestream 24.01.2025
Одной из ключевых функций Git является возможность клонирования веток, что позволяет создавать локальные копии удаленных репозиториев и работать с определенными версиями проекта. Этот механизм. . .
Как в цикле обойти строки DataFrame в Pandas Python
bytestream 24.01.2025
DataFrame представляет собой одну из основных структур данных в библиотеке Python Pandas, которая организует информацию в виде двумерной таблицы с строками и столбцами. Эта структура данных особенно. . .
Как получить имя текущей ветки в Git
bytestream 24.01.2025
При работе с Git часто возникает необходимость определить имя текущей ветки, в которой ведется разработка. Знание текущей ветки является критически важным аспектом для эффективного управления. . .
Как отсортировать массив объектов по значению поля объекта в JavaScript
bytestream 24.01.2025
При разработке веб-приложений на JavaScript разработчики часто сталкиваются с необходимостью работать с массивами объектов. Эти структуры данных представляют собой упорядоченные наборы элементов, где. . .
Ошибка "src refspec master does not match any" при пуше коммита в Git
bytestream 24.01.2025
При работе с системой контроля версий Git разработчики нередко сталкиваются с различными ошибками, одной из которых является сообщение "src refspec master does not match any". Эта ошибка возникает. . .
Как округлить не более двух цифр после запятой в JavaScript
bytestream 24.01.2025
При работе с числами в JavaScript разработчики часто сталкиваются с необходимостью округления десятичных значений до определенного количества знаков после запятой. Это особенно важно при работе с. . .
Как сделать UPDATE из SELECT в SQL Server
hw_wired 24.01.2025
В современных системах управления базами данных операции обновления и выборки данных являются фундаментальными инструментами для работы с информацией. SQL Server предоставляет мощные команды UPDATE и. . .
Как вставить элемент в массив на указанный индекс в JavaScript
hw_wired 24.01.2025
Массивы являются одной из фундаментальных структур данных в JavaScript, предоставляющей разработчикам мощный инструмент для хранения и управления упорядоченными наборами данных. Они позволяют хранить. . .
Чем отличаются HashMap и Hashtable в Java
hw_wired 24.01.2025
В мире разработки на Java существует множество инструментов для работы с коллекциями данных, и среди них особое место занимают структуры данных для хранения пар ключ-значение. HashMap и Hashtable. . .
Как конвертировать видео в GIF
hw_wired 24.01.2025
В современном мире анимированные изображения стали неотъемлемой частью цифровой коммуникации. Формат GIF (Graphics Interchange Format) представляет собой особый тип файлов, который позволяет. . .
Как скопировать текст в буфер обмена на JavaScript во всех браузерах
hw_wired 24.01.2025
Копирование текста в буфер обмена стало неотъемлемой частью современных веб-приложений, значительно улучшающей пользовательский опыт и упрощающей работу с контентом. В эпоху активного обмена. . .
Как скрыть клавиатуру на Android
hw_wired 24.01.2025
При разработке Android-приложений часто возникает необходимость управлять видимостью экранной клавиатуры для улучшения пользовательского опыта. Одним из наиболее эффективных способов контроля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru