Задать вопрос
@kuzia_bRatok
Студент

Как передать свойство в другой класс?

Есть класс fMain с его комбобоксом на форме. Нужно данные, что находятся внутри комбобокса передать в другой класс. Было решено использовать свойство:
public string combRangesAccess
        {
            get
            {
                return combRanges.Text;
            }
            set
            {
                combRanges.Text = value;
            }
        }

Данный код рабочий, но другой класс это свойство, конечно, не видит т.к. свойство не static. Но если сделать static студия выдает ошибку: "Для нестатического поля, метода или свойства dicto.fMain.combRanges требуется ссылка на объект". Подскажите пожалуйста, как передать содержание комбобокса в другой класс с помощью свойства. Или может есть еще какие некостыльные варианты?
  • Вопрос задан
  • 1101 просмотр
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@Marox
Человек
Ваш combobox - это поле класса fMain. Статические методы не относятся к определенному объекту => не имееют доступа к данным объекта. Но можно в качестве аргумента передать в статический метод ссылку на объект
// вот сам метод
class fMain{
//...
public static combRangesAccess(fmain ob)
{
    return ob.combRanges.Text;
}
// вот Вы создаете экземпляр класса fMain
fMain obj = new fMain();
// вот вызываете метод
string text = fMain.combRangesAccess(obj);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@dmitryKovalskiy
программист средней руки
Передавать в другой класс вы ничего не можете. Может в другой объект? А что мешает сделать так -
obj1.prop = obj2.combRangeAccess ?
Некостыльные варианты зависит от вашего алгоритма. Что вы реализуете, как и почему именно таким методом. Вы хотите чтобы у вас один класс(именно класс) зависел от состояния комбобокса? это плохая идея. Объект класса еще ладно - на уровне конструктора можно просто передать состояние нужного вам свойства.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы