Miễn là nhóm phương pháp SomeObject.SomeMethod
có phương thức trả về void
và không có tham số nào thì không có sự khác biệt. Điều này là do ThreadStart
được định nghĩa là delegate
trả về void
và không có tham số và do đó có chuyển đổi tiềm ẩn từ nhóm phương pháp SomeObject.SomeMethod
thành ThreadStart
. Do đó, cả hai đều gọi quá tải Thread(ThreadStart)
của hàm tạo Thread
.
Phần có liên quan của đặc tả ngôn ngữ là §6.6 (Chuyển đổi nhóm phương pháp).
Tôi có một câu hỏi đơn giản: lợi thế của việc khởi tạo đại biểu C# như trái ngược với việc chỉ chuyển tham chiếu hàm là gì?
Vì vậy, chỉ cần chỉnh sửa thuật ngữ tại đây. Với
class MyObject {
public void SomeMethod() { }
}
MyObject someObject = new MyObject();
điều được ký hiệu là someObject.SomeMethod
là nhóm phương pháp. Bạn chỉ có thể nghĩ về nó như là một tập các phương thức quá tải có thể được tra cứu bằng cách sử dụng ký hiệu someObject.SomeMethod
.
có thể trùng lặp của [Sự khác biệt giữa Hành động mới() và lambda là gì?] (Http://stackoverflow.com/questions/765966/what-is-the-difference-between-new-action-and- a-lambda) – nawfal