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

С# обмен данными между классами, как это осуществить?

Раньше писал на Паскале и привык к нему в том плане, что

" 1)Сначала описал переменные (глобальные, локальные там есть тоже, но было достаточно удобно работать с глобальными, если в этом есть необходимость само собой, я в глобальные не впихивал всё подряд)

2) Потом я писал разные процедуры для программы. Эти процедуры могли работать с этими переменными и обмениваться ими.

Решил несколько дней назад начать осваивать С#, вот и столкнулся с такой вот проблемой

В одном классе выполняю какие либо операции над переменными, например над массивом. А вот как эти же значения использовать в другом классе?

Я понимаю, что это мне просто непривычно после паскаля... .

Объясните пожалуйста, чем подробнее и понятнее тем лучше, как мне справиться с этой проблемой и как лучше поступать при написании программы
Глобальные переменные на Паскале - статические члены никогда не создаваемого класса в С#. Это если совсем нельзя без этого.

Ваша проблема типична для перехода с процедурного программирования на объектно-ориентированное. От языка не зависит.

Моя рекомендация: напишите тестовый проект на Паскале с использованием классов и НЕ ИСПОЛЬЗУЯ глобальные переменные. На практике поймете, как группировать процедуры и данные, называя это классами.

ОО решение работы над массивами в разных классах:
1. описать типы: массив, класс1, класс2
2. создать и инициализировать объект типа массив
3. при необходимости сделать что-либо с массивом передать его функциям в классах по ссылке (функции скорее всего будут статическими)
Veysel Sevimli
Veysel Sevimli
11 112
Лучший ответ
Передавай их в виде формальных параметров.
Виталя Киселёв
Виталя Киселёв
85 899
Создаешь объект класса (если он не статический) и присваиваешь переменным значения, а потом вызываешь методы. Присваивать можешь через автоматические свойства {set; get;}.
Хм. В сисярпе я сроду не работал, но чисто теоретически. . ООП же. Объявлять переменные можно в том же неймспейсе, где объявляешь экземпляры классов, и потом подпихивать их любому из этих самых экземпляров, какому хочешь. Ты обрабатываемые значения свойствами пихал, что ли? Не прайватовыми хоть?

Ну вот смотри. . К примеру:
public class MyClass { /*какие-то свойства*/ public int myFunc(double a); }

public class StartupClass {
static void Main()
{
MyClass g = new MyClass();
double f = 2.34;
int s = g.myFunc(f);
}
}

Создал экземпляр MyClass и передал его методу созданную мной же переменную f. Пусть шарписты отсюда подскажут, как это точнее оформить, чтобы заработало. Реализация myFunc, естессна, нужна, а не только объявление.
P.S. Ненавижу ООП.
Mister Kim
Mister Kim
7 591
Сделай их открытыми
public int d;
и класс наследуйте. Почитайте о наследовании классов. В любой книге по шарпу, начинают объяснять с начала классы.
????? ?????????
????? ?????????
320