Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/82: Рейтинг темы: голосов - 82, средняя оценка - 4.73
1 / 1 / 0
Регистрация: 23.01.2010
Сообщений: 24

Глобальный объект

08.02.2010, 19:21. Показов 16460. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как сделать такое: при запуске программы (т.е. появление Главной формы) я создаю объект (коллекция) на основе моего public класса. И этотот объект будет доступен везде, в. т. все его методы и свойства. Если да то как этот объект декларировать?

Т.е. Мне необходимо создать класс, объект которого будет виден в любой точке кода!
Я пробывал использовать Singleton но никак не могу разобраться с ним.

Если Вас не затруднит написать конкретный пример.

Тема глобального объекта на C# будет интересна всем!


Спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.02.2010, 19:21
Ответы с готовыми решениями:

Узнать объект, в котором создался другой объект
Есть первый класс, который создает второй класс, код которого ниже. Как мне во втором классе получить ссылку на объект класса, который...

Глобальный хук
Всем доброго времени суток! Помогите написать глобальный хук и функцию для него, чтобы перехватывал вводимый текст с клавиатуры и писал в...

глобальный перехват клавиотуры
всем привет. хочу сделать прогу на подобии Punto_Switcher .Загвостка у меня в перехвати клавиши клавиотуры.как отследить клавишу когда...

10
 Аватар для HIMen
4340 / 1509 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
08.02.2010, 19:41
Цитата Сообщение от Dmitry_coder Посмотреть сообщение
Тема глобального объекта на C# будет интересна всем!

Я глобальные переменные делаю свойствами класса Program
0
1 / 1 / 0
Регистрация: 23.01.2010
Сообщений: 24
08.02.2010, 19:49  [ТС]
Цитата Сообщение от HIMen Посмотреть сообщение

Я глобальные переменные делаю свойствами класса Program
Можете привести кусочек кода который это демонстрирует?
0
 Аватар для HIMen
4340 / 1509 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
08.02.2010, 19:52
C#
1
2
3
4
5
6
7
8
9
10
11
static class Program
{
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
    }
    public static int Var { get; set; }
}
Доступ из любого места
C#
1
Program.Var =
0
1 / 1 / 0
Регистрация: 23.01.2010
Сообщений: 24
09.02.2010, 09:09  [ТС]
Цитата Сообщение от HIMen Посмотреть сообщение

C#
1
2
3
4
5
6
7
8
9
10
11
static class Program
{
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
    }
    public static int Var { get; set; }
}
Доступ из любого места
C#
1
Program.Var =
Спасибо!
Да работает, всё здорово! Но все же создание глобального объекта является весьма привлекательным!

Добавлено через 13 часов 8 минут
Дорогие друзья я разобрался как создавать глобальные объекты и вызывать его в любом месте кода программы!

Итак создаем класс - коллекцию, типа Singleton. Это такой класс, который допускает только создание всего одного своего экземпляра.

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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections; //Пространство имен где описаны интерфейсы для работы коллекций
 
namespace SRR
{
    public class RPUSSingleton : CollectionBase  //Класс коллекция объектов класса RPU 
    {
        public static RPUSSingleton instance = new RPUSSingleton();
 
        public RPUSSingleton() { }
 
        public static RPUSSingleton GetInstance()
        {
            return instance;
        }
 
        //МЕТОДЫ КЛАССА
        public void Add(RPU newRPU)
        {
            List.Add(newRPU); //Метод добавить элемент
        }
        public void Remove(RPU oldRPU)
        {
            List.Add(oldRPU); //Метод удалить элемент
        }
        public RPU this[int IndexRPU] //Индексатор в коллекции
        {
            get
            {
                return (RPU)List[IndexRPU];
            }
            set
            {
                List[IndexRPU] = value;
            }
        }
    }
}
Далее в коде главной программы прописываем свойство так:
public static RPUSSingleton myRPUS = RPUSSingleton.GetInstance();

Теперь экземпляр класса RPUSSingleton myRPUS - будет доступен всюду. Т.е. этой коллекцией можно везде пользоваться!


Если будут вопросы или предложения по улучшению этого механизма пишите!
0
 Аватар для Humanitis
176 / 168 / 27
Регистрация: 12.01.2009
Сообщений: 430
09.02.2010, 09:47
Цитата Сообщение от Dmitry_coder Посмотреть сообщение
Итак создаем класс - коллекцию, типа Singleton. Это такой класс, который допускает только создание всего одного своего экземпляра.
У тебя тут от Singleton одно название.
0
1 / 1 / 0
Регистрация: 23.01.2010
Сообщений: 24
09.02.2010, 12:17  [ТС]
Цитата Сообщение от Humanitis Посмотреть сообщение
У тебя тут от Singleton одно название.
Класс RPUSSingleton типа Singleton, т.е. это класс от которого можно создать всего один экземпляр в программе. Singleton - это такой вид из всех видов классов.

Вот где то так.
0
 Аватар для Humanitis
176 / 168 / 27
Регистрация: 12.01.2009
Сообщений: 430
09.02.2010, 12:35
Ну так измени уровень доступа к конструктору на private .
Да и тут тоже
C#
1
public static RPUSSingleton instance = new RPUSSingleton();
0
137 / 133 / 20
Регистрация: 03.02.2009
Сообщений: 608
09.02.2010, 12:35
Dmitry_coder,
Humanitis,
по моему это всё в любой книге по c# есть. (азы ооп)
0
 Аватар для Humanitis
176 / 168 / 27
Регистрация: 12.01.2009
Сообщений: 430
09.02.2010, 12:39
Цитата Сообщение от virus_system Посмотреть сообщение
Dmitry_coder,
Humanitis,
по моему это всё в любой книге по c# есть. (азы ооп)
Можешь примером подтвердить?
0
137 / 133 / 20
Регистрация: 03.02.2009
Сообщений: 608
09.02.2010, 13:04
Цитата Сообщение от Humanitis Посмотреть сообщение
Можешь примером подтвердить?
именно про singletom возможно мало (на скидку неприпомню). А про статик объекты - полно. Кто вам мешает пользоваться статиком?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.02.2010, 13:04
Помогаю со студенческими работами здесь

Глобальный хук клавиатуры
Я пишу программу с функцией воспроизведения. Мне нужно, что бы программа при нажатии на клавишу начинала воспроизведение, или...

Глобальный хук на CreateProcess
требуется отслеживать запуск некоторых приложений и прибивать их при запуске, подскажите как реализовать чую полез в дремучий лес , если не...

Глобальный хук перестает работать
Всем привет, проблема: есть глобальный хук, он отслеживает какую кнопку я нажал, и если я нажал определенную клавишу то выполняется метод...

Не ставится глобальный хук на мышь
В общем пытаюсь разобраться с Хуками. Короче ставлю глобальный Хук на мышку. Вроде все должно работать, но Хук не ставиться. Вот фрагменты...

Глобальный перехват нажатий клавиши
Всем привет, помогите переписать код. Нужно сделать чтобы при нажатии на кнопку Numpad1 выполнялся код. Пример такой ...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru