27 / 29 / 5
Регистрация: 20.02.2012
Сообщений: 350
1

Переопределить операции "+" "=" "-" для экземпляров моего класса

10.04.2012, 12:55. Показов 1745. Ответов 4
Метки нет (Все метки)

Добрый день. Мне нужно переопределить операции "+" "=" "-" для экземпляров моего класса. Я вижу это как то так
C#
1
2
3
4
5
6
7
8
        public static Tre operator= (Tre n , int i)
        {
            return new Tre(n= i);
        }
        public static Tre operator - (Tre n , int i)
        {
            return new Tre(n-i);
        }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.04.2012, 12:55
Ответы с готовыми решениями:

Ошибка после конвертации метода на С++ к С#: "Неявное преобразование типа "int" в "bool" невозможно"
Ошибка после преобразования метода на С++ к С#: "Неявное преобразование типа "int" в "bool"...

Ошибка CS0019: Оператор "*" не может применяться к операндам типа "decimal" и "float"
Здравствуйте! Писал приложение и наткнулся на интересную ошибку (честно говоря, я не совсем понимаю...

Ошибка: "Не удалось привести тип объекта "System.ConsoleKeyInfo" к типу "System.IConvertible"."
При запуске пишет, что "Не удалось привести тип объекта "System.ConsoleKeyInfo" к типу...

SOCKS сервер для принятия данных с браузера. Что означают команды "GET", "POST"
Нужно сделать socks сервер. Создал TCP сервер, принимаю все данные с браузера. Вот только перед...

4
2 / 2 / 1
Регистрация: 18.08.2011
Сообщений: 18
10.04.2012, 18:39 2
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
        /// <summary>
        /// Сложение двух матриц
        /// </summary>
            /// <param name="MatrixObj1">Экземпляр матрицы 1</param>
            /// <param name="MatrixObj2">Экземпляр матрицы 2</param>
        /// <returns></returns>
        public static Matrix operator +(Matrix MatrixObj1, Matrix MatrixObj2)
            {
 
                Matrix MatrixSum = new Matrix(MatrixObj1.Size);
 
                for (int i = 0; i < MatrixObj1.Size; i++)
                {
                    for (int j = 0; j < MatrixObj1.Size; j++)
                    {
                        MatrixSum.MyMatrix[i, j] = MatrixObj1.MyMatrix[i, j] + MatrixObj2.MyMatrix[i, j];
                    }
                }
 
                return MatrixSum;
 
            }
 
 
        /// <summary>
        /// Сравнивает два объекта класса Matrix
        /// </summary>
        /// <param name="MatrixObj1">Экземпляр матрицы 1</param>
        /// <param name="MatrixObj2">Экземпляр матрицы 2</param>
        /// <returns></returns>
        public static bool operator ==(Matrix MatrixObj1, Matrix MatrixObj2)
        {
 
            for (int i = 0; i < MatrixObj1.Size; i++)
            {
                for (int j = 0; j < MatrixObj1.Size; j++)
                {
                    if (MatrixObj1.MyMatrix[i, j] == MatrixObj2.MyMatrix[i, j])
                    {
 
                    }
                    else
                    {
                        return false;
                    }
                }
            }
 
            return true;
 
        }
0
27 / 29 / 5
Регистрация: 20.02.2012
Сообщений: 350
10.04.2012, 19:17  [ТС] 3
Это если мы складываем элементы одного класса а мне нужно для разных , моего класса Tre и класса Int
0
22 / 22 / 5
Регистрация: 07.02.2010
Сообщений: 67
10.04.2012, 20:56 4
Sparrow44, насколько я помню, оператор присвоения (=) в C# не перегружается. Ну а в случае вычитания все верно.
Цитата Сообщение от Sparrow44 Посмотреть сообщение
C#
1
public static Tre operator - (Tre n , int i)
0
27 / 29 / 5
Регистрация: 20.02.2012
Сообщений: 350
10.04.2012, 21:00  [ТС] 5
К сожалению да, не перегружается уже выяснил
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.04.2012, 21:00
Помогаю со студенческими работами здесь

Десериализация json. Ожидается элемент "root" из пространства имен "". Обнаружен элемент "None"
Здравствуйте. Получаю от сервера ответ на запросы. В интернете нашел пример десериализации, и с...

Программа для перевода в транслит выдает ошибку на "}" "Ссылка на объект не указывает на экземпляр объекта."
Вот код: if (radioButton6.Checked == true) { ...

Rider C# 7.0 , ошибка компилятора : " Недопустимое значение "7" для /langversion;"
Установил недавно на чистую 10ку Rider 2017.3. Начал писать , в редакторе некоторые синтаксические...

Оператор "*" не может применяться к операндам типа "type" и "type"
public vector module() { return new vector(x * x + y * y + z * z); } ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru