Gần đây tôi đã phát hiện ra rằng các cấu trúc trong C# có thể có các phương thức.Sự khác nhau giữa phương pháp cấu trúc tĩnh và phương thức lớp tĩnh là gì?
Khá vô tình, tôi thấy mình đã sử dụng phương pháp tĩnh của một cấu trúc trống trong mã của tôi, chứ không phải là phương pháp tĩnh của một lớp tĩnh mà tôi nghĩ rằng tôi đã làm việc với!
ví dụ:
public struct Foo
{
public static void Bar(Param param)
{
...
}
}
Nó không thực sự được sử dụng như một cấu trúc tại thời điểm này, vì nó không có thuộc tính nào cả!
Điều này rất khác với việc sử dụng phương pháp tĩnh của một lớp (tĩnh hay cách khác)? Có lý do nào để thích cái này hơn cái kia không? (Ruột của tôi nói với tôi rằng việc sử dụng các phương pháp cấu trúc tĩnh, ở mức tối thiểu, ít trực quan)
Khai báo một lớp 'tĩnh' có lợi ích bổ sung (trên' niêm phong trừu tượng') cho phép trình biên dịch gắn cờ bất kỳ tập quán nào của loại trong khai báo biến hoặc phôi là lỗi. –
@mikez Điều đó cũng vậy, cũng như gắn cờ bất kỳ tuyên bố thành viên cá thể nào là lỗi. – cdhowie
@mikez Tôi nghĩ sự khác biệt quan trọng hơn là 'lớp niêm phong trừu tượng' đơn giản là không hợp lệ C#. – svick