Стоит сначала отметить, что у нас должно быть что-то вроде .Invoke()
в качестве места встречи между языками. То же самое, что int
для C # и Integer
для VB.NET равно System.Int32
для них обоих и для любого другого языка CLR; так же у нас есть Invoke()
, к которому любой язык CLR может предложить доступ, и который они затем могут предоставить дополнительный синтаксический сахар в средствах, подходящих для их синтаксиса (большинство из них будут рассматривать в значительной степени соглашения о стиле VB в C # или соглашения о стиле C # в VB быть синтаксическим уксусом; сахар всегда должен соответствовать остальному языку как можно лучше).
Этот сахар добавлен, почему бы не использовать его постоянно? Некоторые люди иногда хотят прояснить, что они имеют дело с делегатом. Некоторые просто не будут его использовать; Я в основном нет. Как и у всех синтаксических символов, преимущества и недостатки связаны с ясностью, а не с правильностью (действительно, посмотрите на вызов x.Invoke()
в отражателе, и вы увидите, что он x()
, потому что отражатель не знает, какой вы использовали) .