Можно ли получить то, что передано конструктору класса?

191
30 мая 2018, 11:10

Возможно глупый вопрос, но я туплю и не могу ничего сделать. Есть следующий код:

 public class EventHandlers
{
    public EventHandlers( Permissions per)
    {
        per.Data = "safafs"; //Первый случай
    }
    public void safd()
    {
      //Второй случай
    }
}

В первом случае, очевидно, все отлично. Но вот как сделать что-то похожее во втором я, к сожалению, не знаю. Есть идеи, товарищи?

Answer 1

Подумайте сами, если вам нужен объект везде (не только в одном методе), то что надо сделать? Правильно, объявить его в классе, а не в методе. Тогда через конструктор вы можете задать ему нужные данные.

public class EventHandlers
{
    Permissions Permissions;
    public EventHandlers( Permissions per)
    {
        Permissions = per;
        //...
    }
    public void safd()
    {
       Permissions.Data = "safafs";
    }
}
Answer 2

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

READ ALSO
Жизненный цикл объекта DbContext в Ninject

Жизненный цикл объекта DbContext в Ninject

Проблема заключается в том, что ninject создает в UnitOfWork и репозиториях разные классы DbContext, а нужно что бы репозитории пользовались контекстом...

187
Данные из datagridview не вносятся в базу данных sql

Данные из datagridview не вносятся в базу данных sql

Всем привет! 1)Создал базу данных в sql(sql server management studio) 2)В visual studio подключил через источники данных, таблицу созданную в sql вывел на форму, но при...

191
Как вернуть названия всех полей класса?

Как вернуть названия всех полей класса?

Как сделать функцию внутри класса, которая может вернуть энумератор/список string c названиями всех публичных полей этого класса? Например...

215
Кодировка mysql в командной строке

Кодировка mysql в командной строке

Использую mysql При выводе в командной строке кракозябры Подскажите как вывести правильные записи кирилицу

249