Если у группы методов SomeObject.SomeMethod
есть метод с возвратным типом void
и без параметров нет разницы. Это связано с тем, что ThreadStart
определяется как delegate
, который возвращает void
и не принимает параметров, и поэтому происходит неявное преобразование из группы методов SomeObject.SomeMethod
в ThreadStart
. Таким образом, оба вызывают перегрузку Thread(ThreadStart)
конструктора Thread
.
Соответствующий раздел спецификации языка - §6.6 (Преобразование групп методов).
У меня есть простой вопрос: в чем преимущество создания экземпляра делегата C#, а не просто передачи ссылки на функцию?
Итак, только исправление терминологии здесь. С
class MyObject {
public void SomeMethod() { }
}
MyObject someObject = new MyObject();
вещь обозначается someObject.SomeMethod
является групповой метод. Вы можете просто подумать об этом, так как набор перегруженных методов может быть просмотрен с использованием обозначения someObject.SomeMethod
.
Возможный дубликат [В чем разница между новым действием() и лямбдой?] (Http://stackoverflow.com/questions/765966/what-is-the-difference-between-new-action-and- a-lambda) – nawfal