Както по дебильному немерле генерит замыкания
def param = getOmmParameter(Guid($(param.ID.ToString() : string))); // ну тут макрос, но можете счиатать что это строка "66d1a69e-37d2-4569-9c81-3dc0b441d4a5"
param.PropertyChanged += fun(_, e)
{
when (e.PropertyName == "Value")
OnPropertyChanged((param.Name : string));
}
param.Value :> $(param.Type.ToString() : usesite)
}
и на вызоде получается
get
{
_N_closure_8066 e_ = new _N_closure_8066 {
_N__N_closurised_this_ptr_8071 = this,
_N_param_8073 = this.getOmmParameter(new Guid())
};
FunctionVoid<object, PropertyChangedEventArgs> @void = new _N__N_lambda__8057__8075(e_);
e_._N_param_8073.PropertyChanged += new PropertyChangedEventHandler(@void.apply_void);
return (double) e_._N_param_8073.Value;
}
Вопроссы
1) зачем Гуид пихать в замыкание? Если он ипсользуеться только в теле метода..
2) Зачем вообще создавать класс _N__N_lambda__8057__8075, C# создает в таком случаае приватный метод с рандомным именем, и подписывает на событие делегат на этот метод.
Я бы не возущался... но есть один нюанс, мы используем WeakDelegatе и по этому _N__N_lambda__8057__8075 запроста уберется сборщиком мусора... очень печально.
Это создавать целый метод для такой тривиальной задачи... а шарп справлялся...