Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2013, 16:24   #1
gylayko
Форумчанин
 
Регистрация: 14.09.2011
Сообщений: 203
По умолчанию свойства в c#

пытаюсь сделать свойство, но что-то я не так пишу, так как постоянно выдает ошибку: В качестве оператора могут использоваться только выражения присваивания, вызова, инкремента, декремента и создания нового объекта. помогите разобраться, что я не так делаю.
Код:
 public int sovm(int x, int y, int shirina, int visota, int x2, int y2, int shirina2, int visota2, int shirina3, int visota3)
        {
            get
            {
            if ((x == x2) && (shirina < shirina2) && (y < y2))
            { return shirina3 = x + shirina2; visota3 = y + y2 + visota2; }
            else if ((x == x2) && (shirina > shirina2) && (y < y2))
            { return shirina3 = x + shirina; visota3 = y + y2 + visota2; }
            else if ((x == x2) && (shirina < shirina2) && (y > y2))
            { return shirina3 = shirina2; visota3 = y + y2 * (-1) + visota; }
            else if ((x == x2) && (shirina >= shirina2) && (y > y2))
            { return shirina3 = shirina; visota3 = y + y2 * (-1) + visota2; }
            else 
                if ((y == y2) && (visota < visota2) && (x < x2))
            { return shirina3 = x + x2+shirina2; visota3 = y + visota2; }
            else if ((y == y2) && (visota > visota2) && (x < x2))
            { return shirina3 = x + x2+ shirina; visota3 = y + y2+visota; }
            else if ((y == y2) && (visota < visota2) && (x > x2))
                { return shirina3 = x + x2 * (-1) + shirina2; visota3 = y + visota; }
            else if ((y == y2) && (visota > visota2) && (x > x2))
                { return shirina3 = x + x2 * (-1) + shirina; visota3 = y + visota2; }

            else if ((x < x2) && (y < y2))
                { return shirina3 = x * (-1) + x2 + shirina2; visota3 = y * (-1) + y2 + visota2; }
            else if ((x > x2) && (y > y2))
                { return shirina3 = x2 * (-1) + x + shirina; visota3 = y + y2 * (-1) + visota; }
            else if ((x < x2) && (y > y2))
                { return shirina3 = x * (-1) + x2 + shirina2; visota3 = y + y2 * (-1) + visota; }
            else if ((x > x2) && (y < y2))
                { return shirina3 = x + x2 * (-1) + shirina; visota3 = y * (-1) + y2 + visota2; }
            }
            set
            {shirina3, visota3=value;
            }
Console.WriteLine("Ширина совмещенного прямоугольника = "+shirina3+", высота = "+visota3);
        }
gylayko вне форума Ответить с цитированием
Старый 22.03.2013, 17:07   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

???
Свойство - это не функция (точнее, синтаксическая декорация пары методов get() и set(value)). Пока не советую Вам пользоваться свойствами вовсе и прежде осознать, почему такая конструкция
Код:
return shirina3 = x + shirina2; visota3 = y + y2 + visota2;
сработает совсем не так, как Вы ожидали (т.е. вернётся x+shirina2, состояние объекта не изменится, "visota3 = y + y2 + visota2" вычислено не будет).
Abstraction вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Свойства комопнент nza Компоненты Delphi 4 24.12.2010 18:04
C++ Свойства. Ошибка Jane-sad Помощь студентам 2 24.12.2010 14:28
Свойства DBLookupComboBox drossell Помощь студентам 0 24.11.2010 20:43
Свойства класса ImmortalAlexSan Общие вопросы Delphi 2 05.11.2010 00:33
Свойства папки Kapitann Операционные системы общие вопросы 4 09.10.2010 21:07