2010-02-15 47 views

Trả lời

40

Khai báo lớp tĩnh nhằm mục đích cho lớp đó là tập hợp chức năng tĩnh và bất kỳ ai thêm thành viên mẫu sẽ bị lỗi biên dịch.

Một lớp không tĩnh với các thành viên tĩnh thường chỉ ra rằng lớp được thiết kế để được khởi tạo tại một số điểm. Các phương pháp tĩnh của các lớp này thường thực hiện một trong hai điều sau:

  1. Cung cấp phương pháp tạo nhà máy cho loại đó;
  2. Cung cấp chức năng trợ giúp không yêu cầu phiên bản loại;

Ngoài ra, như đã đề cập, các phương thức tiện ích chỉ có thể được khai báo trên lớp tĩnh.

18

tôi giả sử bạn được yêu cầu cho sự khác biệt?

Phương pháp tĩnh trên lớp tĩnh có thể được sử dụng để xác định một phương pháp mở rộng. Một phương thức tĩnh trên một lớp không tĩnh không thể.

+0

Đó là một câu trả lời rộng rãi chỉ liên quan đến C#. –

+7

@Nathan câu hỏi cụ thể đề cập đến C# vì vậy yep – JaredPar

15

Về hiệu suất và mức sử dụng bộ nhớ; chính xác là không có gì. Có một lớp tĩnh nghĩa là bạn biết không có trường hợp nào, nhưng quay lại 1.1 có một nhà xây dựng riêng được sufficed. Sử dụng một lớp tĩnh nếu nó chỉ đơn giản là không có ý nghĩa để có một thể hiện! (các lớp tiện ích, vv)

5

Khi bạn đang cung cấp các hàm tiện ích và tất cả các phương thức của bạn là tĩnh, tôi khuyên bạn nên sử dụng các phương thức tĩnh trong một lớp tĩnh.

Khi bạn muốn cung cấp các phương thức tiện ích chỉ xử lý cá thể của bạn, tôi khuyên bạn nên sử dụng các phương thức tĩnh trong một lớp không tĩnh. Ví dụ:

var myClass = MyClass.Create(); 
var myClass = MyClass.Parse("serialized.MyClass"); 
-1

Một khác biệt lớn mà tôi phải đối mặt khi quyết định có đi với lớp bình thường với tất cả các phương thức tĩnh hay không, sử dụng lớp tĩnh, là một lớp bình thường hỗ trợ thực hiện giao diện. Tôi chỉ sử dụng lớp tĩnh khi chắc chắn nó sẽ là tập hợp các hàm tĩnh (thường là các hàm trợ giúp) và sẽ không bao giờ nằm ​​trong luồng chính của chương trình. Tôi thúc đẩy lập trình giao diện, cho tiêm phụ thuộc, thử nghiệm đơn vị vv Vì vậy, đối với dòng chảy chính của chương trình, tôi sử dụng lớp bình thường với phương pháp tĩnh.

Các vấn đề liên quan