- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
#region methods
private bool _updatingState;
public class ProcessArgs : EventArgs
{
}
internal event EventHandler<ProcessArgs> OnBeforeProcess;
public abstract void Process(IEnumerable<DataSource> data);
// Тут еще много всего, на удивление есть и методы
#endregion
#region properties
private readonly IList<IResult> _results = new List<IResult>(100);
private void buildResultsList()
{
//код
}
// ну и немного свойств
#endregion
#region events
public delegate IEnumerable<int> Strategy();
public class StrategyEventArgs : EventArgs
{
public Strategy Strategy { get; set; }
}
public event EventHandler OnResultsLoading;
private void raiseOnResultsLoading()
{
foreach (EventHandler handler in OnResultsLoading.GetInvocationList())
handler(this, EventArgs.Empty);
}
#endregion
#region members
// пусто - все мемберы сидят по другим region
#endregion
За что я не люблю regions, особенно у говнокодеров. Зато если просто открыть файлик то выглядит все замечательно, чисто и аккуратно.
guest 05.01.2011 23:22 # +1
guest 07.01.2011 00:50 # 0
eval_2009 07.01.2011 00:55 # 0
http://govnokod.ru/4808
guest 07.01.2011 01:05 # 0
Это не только говно, но ещё и опасное говно с точки зрения многопоточности.
Что будет, если по среди этого foreach в другом потоке произойдёт добавление нового обработчика события ?
Конечно же хрень...
eval_2009 07.01.2011 01:14 # 0
У этого метода есть право на жизнь, но в ограниченных случаях. К примеру когдя я гарантированно хочу вызвать все обработчики несмотря на возможные ошибки:
foreach (EventHandler logHandler in OnLogEvent.GetInvocationList())
{
try
{
logHandler(this, dataToLog);
}
catch (Exception ex)
{
lastResortLogger(ex);
//Exceptions inside loggers won't be escalated to the app
}
}
guest 07.01.2011 01:18 # 0
guest 07.01.2011 01:02 # 0
guest 05.01.2011 23:25 # 0
Lure Of Chaos 05.01.2011 23:26 # −1
absolut 05.01.2011 23:53 # 0
Lure Of Chaos 05.01.2011 23:54 # +1
Анонимус 06.01.2011 16:26 # +1
absolut 07.01.2011 00:42 # +3
Анонимус 07.01.2011 02:24 # 0
в свое время микрософт прикрыл реджинами килолитры автогенеренного кода для страничек в asp.net
я тогда очень смеялся
но потом микрософт вынес его в отдельный файл, и придумал паричал классы
и я понял что реджины -- не так уж и плохо. класс, размазанный по сорока пяти файлам -- куда хуже