Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
1 / 1 / 0
Регистрация: 03.07.2016
Сообщений: 22

Как реализовать счетчики количества обращений к свойствам класса?

12.08.2016, 19:40. Показов 2144. Ответов 10

Студворк — интернет-сервис помощи студентам
Как реализовать счетчики количества обращений к свойствам класса? На все свойства по одному общему счетчику, один считает количество чтений, второй кол-во записей.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Candle
    {
                     
        public double O { get; set; }
        public double C { get; set; }
        public double Z { get; set; }
        public double M { get; set; }
        
        
  
        public Can()
        {
            O = -1;
            C = -1;
            Z = -1;
            M = -1;
                     
        }
           // какие - то методы
        
        }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.08.2016, 19:40
Ответы с готовыми решениями:

Счетчик количества обращений - добавить вывод количества обращений за сегодня
Привет всем)) Есть счетчик который записывает данные файл. Хочу добавить чтобы он выводил не только общее число но и конкретно за...

Реализовать подсчет количества объектов класса, используя статическую переменную-член класса
как реализовать подсчет количества объектов класса (используя статическую переменную-член класса), а также статическую функцию, которая...

Как правильно создать экземпляр класса для доступа к его свойствам
Всем доброго времени суток. Сижу уже долго над этим участком. У меня есть класс Pinball, я создаю экземпляр этого класса PinMe. Нужно...

10
 Аватар для Рядовой
1524 / 914 / 329
Регистрация: 17.05.2015
Сообщений: 3,438
12.08.2016, 20:15
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Car
    {
        public int setSpeed = 0;
        public int getSpeed = 0;
        private int _speed;
        public int Speed
        {
            get
            {
                getSpeed++;
                return _speed;
            }
            set
            {
                setSpeed++;
                _speed = value;
            }
        }
    }
2
1 / 1 / 0
Регистрация: 03.07.2016
Сообщений: 22
13.08.2016, 19:28  [ТС]
Этот вариант мне известен, интересует как уследить за всеми полями через общий счетчик.
0
 Аватар для EveKS
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
13.08.2016, 19:38
Андрей 7, static
1
1 / 1 / 0
Регистрация: 03.07.2016
Сообщений: 22
13.08.2016, 19:41  [ТС]
Добавлено через 1 минуту
Цитата Сообщение от EveKS Посмотреть сообщение
Андрей 7, static
А можно подробнее?
0
 Аватар для EveKS
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
13.08.2016, 20:00
Андрей 7,
C#
1
static public int setSpeed = 0;
Теперь где бы мы его не считали - он общий. Я не уверен, но можно поискать инфу о .GetType(); или System.Reflection;

Добавлено через 3 минуты
Цитата Сообщение от Рядовой Посмотреть сообщение
C#
1
2
3
4
5
public int Speed
 {
 get { getSpeed++; return _speed; }
 set { setSpeed++; _speed = value; }
 }
Андрей 7, что тут не так? - наша переменная это поле Speed, счетчики не трогаем и _speed тоже.

Добавлено через 10 минут
Андрей 7,
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
    class Program
    {
        static void Main(string[] args)
        {
            var car = new Car();
            car.Speed = 60; //getSpeed +1
 
            Console.WriteLine(car.Speed); //setSpeed +1
 
            car.Speed = 100; //getSpeed +1
            car.Foo(10); //getSpeed+1 setSpeed+1
 
            Console.WriteLine("getSpeed = " + car.getSpeed + " " +
                "setSpeed = "  + car.setSpeed); // getSpeed = 3 getSpeed = 2
            Console.ReadKey(false);
        }
    }
    public class Car
    {
        public int setSpeed = 0;
        public int getSpeed = 0;
        private int _speed;
        public int Speed
        {
            get
            {
                getSpeed++;
                return _speed;
            }
            set
            {
                setSpeed++;
                _speed = value;
            }
        }
        public void Foo(int val)
        {
            int a = Speed / val;
            Console.WriteLine(a + " " + Speed);
        }
    }
1
1 / 1 / 0
Регистрация: 03.07.2016
Сообщений: 22
13.08.2016, 20:15  [ТС]
Цитата Сообщение от EveKS Посмотреть сообщение
Андрей 7,
C#
1
static public int setSpeed = 0;
Теперь где бы мы его не считали - он общий. Я не уверен, но можно поискать инфу о .GetType(); или System.Reflection;

Добавлено через 3 минуты

Андрей 7, что тут не так? - наша переменная это поле Speed, счетчики не трогаем и _speed тоже.

Добавлено через 10 минут
Андрей 7,
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
    class Program
    {
        static void Main(string[] args)
        {
            var car = new Car();
            car.Speed = 60; //getSpeed +1
 
            Console.WriteLine(car.Speed); //setSpeed +1
 
            car.Speed = 100; //getSpeed +1
            car.Foo(10); //getSpeed+1 setSpeed+1
 
            Console.WriteLine("getSpeed = " + car.getSpeed + " " +
                "setSpeed = "  + car.setSpeed); // getSpeed = 3 getSpeed = 2
            Console.ReadKey(false);
        }
    }
    public class Car
    {
        public int setSpeed = 0;
        public int getSpeed = 0;
        private int _speed;
        public int Speed
        {
            get
            {
                getSpeed++;
                return _speed;
            }
            set
            {
                setSpeed++;
                _speed = value;
            }
        }
        public void Foo(int val)
        {
            int a = Speed / val;
            Console.WriteLine(a + " " + Speed);
        }
    }
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
class Program
    {
        static void Main(string[] args)
        {
            var car = new Car();
            car.Speed = 60; //getSpeed +1
 
            Console.WriteLine(car.Speed); //setSpeed +1
 
            car.Speed = 100; //getSpeed +1
            car.Foo(10); //getSpeed+1 setSpeed+1
 
            Console.WriteLine("getSpeed = " + car.getSpeed + " " +
                "setSpeed = " + car.setSpeed); // getSpeed = 3 getSpeed = 2
            Console.WriteLine(car.mass);
            Console.ReadKey(false);
        }
    }
    public class Car
    {
        public int setSpeed = 0;
        public int getSpeed = 0;
        private int _speed;
        public int mass {get { return mass; } set { mass = value; } }
        
        public int Speed
        {
            get
            {
                getSpeed++;
                return _speed;
            }
            set
            {
                setSpeed++;
                _speed = value;
            }
        }
        public void Foo(int val)
        {
            int a = Speed / val;
            Console.WriteLine(a + " " + Speed);
        }
    }
как одним счетчиком посчитать количество обращений ко всем get-ам
в строке 24 добавлено свойство
0
 Аватар для Рядовой
1524 / 914 / 329
Регистрация: 17.05.2015
Сообщений: 3,438
13.08.2016, 20:32
Цитата Сообщение от Андрей 7 Посмотреть сообщение
как одним счетчиком посчитать количество обращений ко всем get-ам
пропиши во всех свойствах, где get - счетчик++
1
1 / 1 / 0
Регистрация: 03.07.2016
Сообщений: 22
13.08.2016, 20:34  [ТС]
Цитата Сообщение от Рядовой Посмотреть сообщение
пропиши во всех свойствах, где get - счетчик++
Ну вот такое у меня задание.
0
 Аватар для Рядовой
1524 / 914 / 329
Регистрация: 17.05.2015
Сообщений: 3,438
13.08.2016, 21:16
Андрей 7,
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
public class Car
    {
        public int getter = 0;
        private int _mass;
        private int _speed;
        public int mass
        {
            get
            {
                getter++;
                return _mass;
            }
            set
            {
                _mass = value;
            }
        }
 
        public int Speed
        {
            get
            {
                getter++;
                return _speed;
            }
            set
            {
                _speed = value;
            }
        }
    }
1
1 / 1 / 0
Регистрация: 03.07.2016
Сообщений: 22
13.08.2016, 21:21  [ТС]
Ребят всем спасибо, наконец то я догнал
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.08.2016, 21:21
Помогаю со студенческими работами здесь

Доступ к свойствам экземпляра класса из другого класса
Здравствуйте! У меня возникла программа с написанием программы на C#. "Реализовать набор классов, описывающих студента (с успеваемостью)...

Просмотр количества обращений Read и (или) Write к таблице
Всем привет. Назрела задача по ведению истории количества обращения Read и (или) Write на каждую таблицу базы за сутки. Нужно...

Счетчики количества перестановок и сравнений Шейкерной сортировки
Помогите ввести счетчики перестановок и сравнений Закоментированный код по идее верен но c ним функция не запускается void...

Поставить счетчики на проверку количества сравнений и обменов сделанных сортировкой
необходимо поставить гдето счетчики на проверку количества сравнений и обменов сделанных сортировкой не получается . for (j = i; j...

Доступ к свойствам класса
Всем привет! Насколько я знаю, в ООП доступ к своиствам класса принято осуществлять через методы даного класса (геттеры и сеттеры). ...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru