Получить и установить свойства - PullRequest
1 голос
/ 17 ноября 2011

У меня проблема с кодом, размещенным ниже, методами set и get.Я хочу назвать его так: this.LastError.Set(1);

Но это дает мне такую ​​ошибку: 'int' не содержит определения для 'Set' и не имеет метода расширения 'Set', принимающего первый аргументможно найти тип 'int' (вам не хватает директивы using или ссылки на сборку?)

public class MyClass
    {
        private int ERROR_NUM = 0;
        public int LastError
        {
            get { return ERROR_NUM; }
            set { ERROR_NUM = value; }
        }

        bool IsLoaded()
        {
            int count = Process.GetProcessesByName("AppName").Length;
            if (count == 1) return true;
            if (count > 1) this.LastError.Set(1);
            return false;
        }
    }

Я знаю, что это, вероятно, глупый вопрос, так что извините за это, я боролсяс этой штукой уже пару часов, и я даже зашел так далеко, что попытался дать LastError свой собственный класс.Это мой первый день на C #.

Ответы [ 9 ]

6 голосов
/ 17 ноября 2011

Просто установите его.

this.LastError = 1;
2 голосов
/ 17 ноября 2011

Суть свойств в том, что они выглядят как поля, вы можете получить и установить их как поля:

this.LastError = 1; // set the value
int lastError = this.LastError; // get the value

Свойство скомпилировано как два метода, set_LastError() и get_LastError().Вы не можете использовать их из C #, но компилятор может и компилирует приведенный выше код в нечто вроде:

this.set_LastError(1);
int lastError = this.get_LastError();
2 голосов
/ 17 ноября 2011

просто сделай так ..

 this.LastError = 1; 
1 голос
/ 17 ноября 2011

Вам не нужно это делать.Просто установите его так:

this.LastError = 1;

Вот и все

1 голос
/ 17 ноября 2011

Чтобы установить свойство в C #, просто используйте оператор "=".

this.LastError = <myvalue>;
0 голосов
/ 17 ноября 2011

Вы работаете с недвижимостью. Свойства инкапсулируют метод Get и Set. Вы не вызываете метод Set, вместо этого вы устанавливаете значение непосредственно для свойства.

this.LastError = 1; 

Внутренне объект будет вызывать метод Set. Свойство представляет собой смесь поля класса и метода: оно выглядит как поле, но в действительности оно вызывает метод. Код намного проще и легче читать со свойствами. Возможно, вы привыкли к другим языкам, таким как Java, у которых нет понятия свойств, что заставляет вас явно вызывать методы Get и Set.

0 голосов
/ 17 ноября 2011

Идея свойств в том, что они действуют так, как будто они являются полями в вашем классе.Это означает, что вы просто получаете и устанавливаете их так, как если бы вы использовали обычную переменную Property = X;var x = свойство

0 голосов
/ 17 ноября 2011

В C # вы должны установить это так:

this.LastError = 1;
0 голосов
/ 17 ноября 2011

Чтобы использовать свойство, вы на самом деле не ссылаетесь на элементы get и set, вы просто используете свойство напрямую, например:

this.LastError = 1;

int lastErrorNum = this.LastError;

в зависимости от того, получаете ли вы или устанавливаете свойство, будет использоваться соответствующая часть get или set.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...