Индексация C # - Могу ли я вернуть весь класс?

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

SendMessage(hwnd, WM_SETICON, new IntPtr(1), IntPtr.Zero);
SendMessage(hwnd, WM_SETICON, IntPtr.Zero, IntPtr.Zero);

(sa https://connect.microsoft.com/VisualStudio/feedback/details/745230 / МОФ окна, не может-быть отображены-без Titlebar-значок )

1
задан Chris_livermore 17 January 2019 в 01:59
поделиться

2 ответа

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

Внутренний класс может быть доступен для любого класса, который содержит текущий проект. Открытый класс доступен для любого класса, даже если это другой проект.

выберите, это зависит от вашей цели.

0
ответ дан Arphile 17 January 2019 в 01:59
поделиться

Чтобы найти поезд, вам нужно сохранить static коллекцию поездов. Статические переменные и функции работают на уровне класса (а не на уровне экземпляра).

Добавьте что-то подобное в ваш класс:

private static Dictionary<string, Train> _trains;
private Train GetTrain(string headCode) {
    if (_trains.TryGetValue(headCode, out var train)) {
        return train;
    } else {
        return null;
    }
}
private bool TryGetTrain(string headCode, out Train train) {
    return _trains.TryGetValue(headCode, out train);
}

И затем в конце вашего конструктора добавьте такой код:

 _trains.Add(newHeadCode, this);

Каждый раз, когда вы создаете новый поезд, он будет добавлен в этот словарь поездов. Затем, когда вы захотите посмотреть на поезд, вы можете сделать это.

var myTrain = Train.GetTrain("some head code");
0
ответ дан Flydog57 17 January 2019 в 01:59
поделиться
Другие вопросы по тегам:

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