Почему я должен бросить перечисления к интервалу в C#?

Попробуйте удалить автоматически созданную папку IISExpress, которая обычно находится в% userprofile% / Documents, например, C: \ Users [вы] \ Documents \ IISExpress

.

Не волнуйтесь, VS должен создать его снова - правильно, на этот раз - как только вы снова запустите свое решение.

EDIT: командная строка для удаления папки:

rmdir /s /q "%userprofile%\Documents\IISExpress"
9
задан Ricardo Amaral 28 November 2008 в 15:56
поделиться

2 ответа

Вид - бросил m. Сообщение вместо этого:

protected override void WndProc(ref Message m) {
    switch((WindowsMessagesFlags) m.Msg) {
        case WindowsMessagesFlags.WM_DISPLAYCHANGE:
                FixWindowSnapping();
                break;
        case WindowsMessagesFlags.WM_EXITSIZEMOVE:
                SaveWindowProperties();
                break;
        case WindowsMessagesFlags.WM_MOVING:
                KeepProperLocation(ref m);
                break;
    }
}

Причина Вам нужен бросок вообще, состоит в том, потому что в перечислениях C# не просто числа - они - числа, связанные с типом. Это препятствует тому, чтобы Вы делали (не бросая):

HttpStatusCode status = someWindowsMessageFlag;

Это - ясно хорошая вещь :) Когда Вы должны, однако, можно всегда идти "через" базовый тип (интервал в этом случае).

26
ответ дан 4 December 2019 в 07:49
поделиться

Что такое сообщение. Сообщение определяется как?

Я держу пари, что это - Int32.

Я также держу пари, что WindowsMessagesFlags является Вашим типом, но сообщение от платформы.

Что означает, что Вы используете свое собственное перечисление с созданным из платформы объектом, и конечно они собираются иметь некоторые несовместимости относительно типов.

Перечисление является сильным типом, не только числом, это - число с именем в контексте. Это имя, контекст, число, часть не непосредственно совместима только с числами, и вот почему необходимо бросить.

2
ответ дан 4 December 2019 в 07:49
поделиться
Другие вопросы по тегам:

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