Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Андрей 7
1 / 1 / 0
Регистрация: 03.07.2016
Сообщений: 18
Завершенные тесты: 1
1

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

12.08.2016, 19:40. Просмотров 329. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.08.2016, 19:40
Ответы с готовыми решениями:

Доступ к свойствам экземпляра класса из другого класса
Здравствуйте! У меня возникла программа с написанием программы на C#. ...

Проход по свойствам класса
Здравствуйте! Есть класс и в нем свойства. Как мне пройтись по этим свойствам...

Distinct-фильтрация по свойствам класса в списке.
Есть список классов List<class> Spisok у каждого класса есть неNull свойство....

Реализовать универсальный метод для обращения к свойствам классов
Всем привет! Есть два класса: public class TableА { public...

Получить доступ к открытым свойствам класса Data из Form1, fun1.
Добрый день. Нужно получить доступ к открытым свойствам класса Data из Form1,...

10
Рядовой
325 / 222 / 132
Регистрация: 17.05.2015
Сообщений: 851
Завершенные тесты: 1
12.08.2016, 20:15 2
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
Андрей 7
1 / 1 / 0
Регистрация: 03.07.2016
Сообщений: 18
Завершенные тесты: 1
13.08.2016, 19:28  [ТС] 3
Этот вариант мне известен, интересует как уследить за всеми полями через общий счетчик.
0
EveKS
415 / 373 / 153
Регистрация: 19.04.2016
Сообщений: 1,483
Завершенные тесты: 7
13.08.2016, 19:38 4
Андрей 7, static
1
Андрей 7
1 / 1 / 0
Регистрация: 03.07.2016
Сообщений: 18
Завершенные тесты: 1
13.08.2016, 19:41  [ТС] 5
Добавлено через 1 минуту
Цитата Сообщение от EveKS Посмотреть сообщение
Андрей 7, static
А можно подробнее?
0
EveKS
415 / 373 / 153
Регистрация: 19.04.2016
Сообщений: 1,483
Завершенные тесты: 7
13.08.2016, 20:00 6
Андрей 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
Андрей 7
1 / 1 / 0
Регистрация: 03.07.2016
Сообщений: 18
Завершенные тесты: 1
13.08.2016, 20:15  [ТС] 7
Цитата Сообщение от 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
Рядовой
325 / 222 / 132
Регистрация: 17.05.2015
Сообщений: 851
Завершенные тесты: 1
13.08.2016, 20:32 8
Цитата Сообщение от Андрей 7 Посмотреть сообщение
как одним счетчиком посчитать количество обращений ко всем get-ам
пропиши во всех свойствах, где get - счетчик++
1
Андрей 7
1 / 1 / 0
Регистрация: 03.07.2016
Сообщений: 18
Завершенные тесты: 1
13.08.2016, 20:34  [ТС] 9
Цитата Сообщение от Рядовой Посмотреть сообщение
пропиши во всех свойствах, где get - счетчик++
Ну вот такое у меня задание.
0
Рядовой
325 / 222 / 132
Регистрация: 17.05.2015
Сообщений: 851
Завершенные тесты: 1
13.08.2016, 21:16 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
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
Андрей 7
1 / 1 / 0
Регистрация: 03.07.2016
Сообщений: 18
Завершенные тесты: 1
13.08.2016, 21:21  [ТС] 11
Ребят всем спасибо, наконец то я догнал
0
13.08.2016, 21:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.08.2016, 21:21

Через рефлексию присвоить одинаковое значение всем свойствам класса
есть, например, класс class Item { public string FIO...

Поиск из "Массива обьектов класса" по свойствам(имени, дате.)
Всем доброго времени суток. Есть проблема такая, мне нужно например вывести из...

Как реализовать программу для такого класса?
class IntegerFunctions { public static long changeLastFirst(long...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru