Другие языки программирования и технологии

Доступ к полям другого класса. C# Подробно внутри!

Значит есть проект, кратко содержание: using System; //////////////// namespace DES_shift { public partial class Form1 : Form { } public class FileService { } } На форме есть ПрогресБар, в классе Form1 я спокойно могу меня атребуты ПрогресБара, но с class FileService НЕ РАБОТАЕТ: "Для нестатического поля, метода или свойства требуется ссылка на объект" Создание еземпляра класа результата не даст, с друзьями классами разобраться не смог, там вообще бред. Использование static невозможно. ЧТО ЖЕ ДЕЛАТЬ?
>Создание еземпляра класа результата не даст
Интересно, с чего бы?
> друзьями классами разобраться не смог
И не надо пока.
>Использование static невозможно
Возможно, но не нужно.
>ЧТО ЖЕ ДЕЛАТЬ?
Не паниковать, а почитать какой-нибудь учебник. Там умные люди пишут умные вещи. Например, что каждый класс желательно описывать в отдельном модуле и со своим неймспейсом. Что классы надо по мере надобности создавать и уничтожать. Как передать классу ссылку на объект определенного класса. В общем, подойди к вопросу системно, с наскока ничего не получится.
Дима Швецов
Дима Швецов
96 565
Лучший ответ
До процесс бара можно дотянуться через ссылку на сам объект, например, :
на форме есть кнопка, вот её обработчик события:
private void button1_Click(object sender, EventArgs e)
{
Temp T = new Temp();
T.process(this);
}

Имеется класс, он меняет состояние процесс бара на форме (МОДИФИКАТОР ДОСТУПА ПРОЦЕСС БАРА ДОЛЖЕН БЫТЬ INTERNAL !!!)
public void process(Form1 F1)
{
F1.progressBar1.Value += 10;
}
Тут без статика, как я понимаю, не обойтись. В Java такая проблема решалась именно им родимым.
ЗЫ: Хотя с СиШарпом не знаком, не буду утверждать, что все фатально.
Валит Валитов
Валит Валитов
1 038
Vitas Bieliauska какая "такая" проблема? незнание что такое класс?
Создание еземпляра класа результата не даст

Мне кажется, Вы здесь ошибаетесь. Так как статичный класс это тот, который всего один - у него нет объектов. А Вам говорится что для нестатичного поля требуется ссылка на объект - следовательно, вам нужно создать экземпляр класса и уже через него через "." (точку) обращаться к его полям и методам. Не понимаю, почему Вы говорите что создание экземпляра результата не даст...
Валит Валитов Не путайте абстрактный класс со статическим
Виталий Магер Спасибо, разобрался, вроде должно получится.
Парат Паратов Proff Dezmond, Использовать статические функции класса можно, не создавая самого экземпляра класса.
http://ru.wikipedia.org/wiki/Статический_класс
Мне кажется Вы немного запутались.
P.S. Автор разобрался :) Посмотрим в чем же проблема. :)