Упрощение struct->delegate c#

337
28 декабря 2016, 02:12

Есть запись данного вида

private struct WindowProperties
{
    public Action WindowDrawDelegate;
}
dialog.StartModal(entry.Id, DialogHelper.DialogType.AssignElement, new WindowProperties
    {
        WindowDrawDelegate = DrawReassignOrRemoveElementAssignmentWindow
    },
    DialogResultCallback);
dialog.StartModal(entry.Id, DialogHelper.DialogType.DeleteAssignmentConfirmation, new WindowProperties
    {
        WindowDrawDelegate = DrawModalWindow
    },
    DialogResultCallback);

Если в WindowsProperties только одна запись, не может ли это как то быть упрощено?

Answer 1

Например, так:

private struct WindowProperties
{
    public Action WindowDrawDelegate;
    public WindowProperties(Action windowDrawDelegate)
    {
        WindowDrawDelegate = windowDrawDelegate;
    }
}
dialog.StartModal(
    entry.Id, DialogHelper.DialogType.AssignElement,
    new WindowProperties(DrawReassignOrRemoveElementAssignmentWindow),
    DialogResultCallback);

Ещё можно определить implicit operator ActionWindowProperties, но это наверное не очень правильно (хоть и укоротит код).

READ ALSO
Исключение An error occured when call to 'gsapi_init_with_args' is made: -100

Исключение An error occured when call to 'gsapi_init_with_args' is made: -100

Код выдаёт исключение, в чём может быть проблема?

426
Как округлять переменные типа Date

Как округлять переменные типа Date

Есть данные со СКУДЭто время входа и время выхода

370
Значение ИЛИ в регулярном выражении

Значение ИЛИ в регулярном выражении

В html коде встречаются несколько видов

367
Как задать ширину границы формы?

Как задать ширину границы формы?

Есть форма (это пример)Как сделать все границы самой формы уже, кроме верхней? Хотелось бы на выходе получить вот так:

463