powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Вопрос по свойствам у класса
5 сообщений из 5, страница 1 из 1
Вопрос по свойствам у класса
    #38633270
Фотография Gena928
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
День добрый,
есть примитивный класс:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
    public class MyCustomer
    {

        public string SecondName
        { get; set; }


            // Метод для работы
            private void MyNewMethod()
            {
                // do something
            }
    }



Задача:
при присвоении значения свойству SecondName надо выполнить метод MyNewMethod().
Проблема в том, что у меня это получается только если создать локальную переменную _SecondName и указывавать ее в геттере и сеттере.
Т.е. вот таким способом:
Код: 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.
         public class MyCustomer
        {

            private string _SecondName;

            /// <summary>
            /// Конструктор
            /// </summary>
            public MyCustomer()
            {
                _SecondName = "";
            }


            public string SecondName
            {
                get { return _SecondName; }
                set
                {
                    _SecondName = value;
                    MyNewMethod();
                }
            }



            // Метод для работы
            private void MyNewMethod()
            {
                // do something
            }
        }



А вот это вылетает с ошибкой:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
        public class MyCustomer
        {

            public string SecondName
            {
                get; // вот это не нравится!
                set
                {
                    MyNewMethod();
                }
            }
            
            // Метод для работы
            private void MyNewMethod()
            {
            }
        }



Error 1 'ConsoleApplication1.Program.MyCustomer.SecondName.get' must declare a body because it is not marked abstract, extern, or partial c:\users........\visual studio 2013\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs 35 17 ConsoleApplication1

Вопрос: можно ли присвоить значение свойству SecondName без локальной переменной и при этом выполнить MyNewMethod?
...
Рейтинг: 0 / 0
Вопрос по свойствам у класса
    #38633340
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gena928,
Нельзя.
Автосвойства - синтаксический сахар, компилятор все равно с генерирует поле.
...
Рейтинг: 0 / 0
Вопрос по свойствам у класса
    #38633370
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gena928,

То что вы хотите - нельзя.
Хотя добиться похожего поведения можно, через Unity Interception например.
...
Рейтинг: 0 / 0
Вопрос по свойствам у класса
    #38633436
Фотография Gena928
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поянлъ, спасибо.
...
Рейтинг: 0 / 0
Вопрос по свойствам у класса
    #38633555
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если сделать геттер пустым

get{;}

тоже не скомпилируется?
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Вопрос по свойствам у класса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]