Открыл исходник одного из компонента WinForms и увидел это:
private static readonly object EVENT_DATAGRIDVIEWALLOWUSERTOADDROWSCHANGED = new object();
private static readonly object EVENT_DATAGRIDVIEWALLOWUSERTODELETEROWSCHANGED = new object();
private static readonly object EVENT_DATAGRIDVIEWALLOWUSERTOORDERCOLUMNSCHANGED = new object();
private static readonly object EVENT_DATAGRIDVIEWALLOWUSERTORESIZECOLUMNSCHANGED = new object();
private static readonly object EVENT_DATAGRIDVIEWALLOWUSERTORESIZEROWSCHANGED = new object();
private static readonly object EVENT_DATAGRIDVIEWALTERNATINGROWSDEFAULTCELLSTYLECHANGED = new object();
private static readonly object EVENT_DATAGRIDVIEWAUTOGENERATECOLUMNSCHANGED = new object();
private static readonly object EVENT_DATAGRIDVIEWAUTOSIZECOLUMNMODECHANGED = new object();
private static readonly object EVENT_DATAGRIDVIEWAUTOSIZECOLUMNSMODECHANGED = new object();
private static readonly object EVENT_DATAGRIDVIEWAUTOSIZEROWSMODECHANGED = new object();
private static readonly object EVENT_DATAGRIDVIEWBACKGROUNDCOLORCHANGED = new object();
private static readonly object EVENT_DATAGRIDVIEWBORDERSTYLECHANGED = new object();
private static readonly object EVENT_DATAGRIDVIEWCANCELROWEDIT = new object();
private static readonly object EVENT_DATAGRIDVIEWCELLBEGINEDIT = new object();
private static readonly object EVENT_DATAGRIDVIEWCELLBORDERSTYLECHANGED = new object();
private static readonly object EVENT_DATAGRIDVIEWCELLCLICK = new object();
private static readonly object EVENT_DATAGRIDVIEWCELLCONTENTCLICK = new object();
Далее видно, что это все используется в качестве ключа в словаре.
Я знаю, что в рамках потока создаваемый объект получает уникальный идентификатор, но разве не проще ли было enum сделать? Какой-либо смысл был, если бы словарь был глобальным, но он создается отдельно на каждый компонент.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей