Событие C# + = делегат {} эквивалент в VB.NET
Ну, я переводил C# into VB.NET
с помощью developer fusion, и API не перевел мне эту часть...
owner.IsVisibleChanged += delegate
{
if (owner.IsVisible)
{
Owner = owner;
Show();
}
};
Я знаю, что += is for AddHandler owner.IsVisibleChanged, AdressOf (delegate??)
, так что, какой эквивалент для этой части?
Заранее благодарю.
PD: у меня не хватает денег на покупку .NET Reflector : (и я впустую потратил испытание.
1 ответ:
Здесь есть две части.
Анонимные методы.
delegate
в C# примерно соответствует анонимномуSub
в VB здесь.Добавление обработчиков событий.
+=
в C#,AddHandler
в VB.Складываем вместе:
AddHandler owner.IsVisibleChanged, _ Sub() … End Sub
Кстати, оператор
AddressOf
, который вы упомянули, используется в VB для ссылки на (неанонимный) метод без его вызова. Поэтому вы могли бы использовать его здесь, если бы вы ссылались на существующий именованный метод, а не на анонимный метод.