2010-03-17 25 views
14

Tôi hiện đang có một tập tin lớp với kiểu liệt kê sau đây:Các bảng liệt kê có nên được đặt trong một tệp riêng biệt hoặc trong một lớp khác không?

using System; 

namespace Helper 
{ 
    public enum ProcessType 
    { 
     Word = 0, 
     Adobe = 1, 
    } 
} 

Hoặc tôi nên bao gồm việc liệt kê trong lớp nơi nó được sử dụng?

tôi nhận thấy Microsoft tạo ra một tập tin lớp mới cho DockStyle:

using System; 
using System.ComponentModel; 
using System.Drawing.Design; 

namespace System.Windows.Forms 
{ 
    public enum DockStyle 
    { 
     None = 0, 
     Top = 1, 
     Bottom = 2, 
     Left = 3, 
     Right = 4,. 
     Fill = 5, 
    } 
} 
+3

Thuật ngữ "ĐTV" gây nhầm lẫn cho tôi ở đây, tôi tự động nghĩ về IEnumerator . Ý bạn là Enumerable (= enum). –

+3

Một 'enum' không phải là một" điều tra viên ". Đó là một "loại liệt kê". Một điều tra viên là cái gì đó khác. –

+0

Xin lỗi về sự nhầm lẫn. – Icono123

Trả lời

27

Nếu enum là chỉ liên quan đến một lớp, nó có thể làm cho tinh thần để làm cho nó một kiểu lồng nhau. Nếu nó có thể được sử dụng ở nơi khác, nó làm cho tinh thần để làm cho nó một loại cấp cao nhất.

+5

+1 Cần thiết để bỏ phiếu vì bạn là Jon Skeet –

+1

Tôi do dự bỏ phiếu, vì Jon Skeet có danh tiếng nhiều hơn Thiên Chúa, nhưng đó là một câu trả lời hay. –

+1

@ Thất bại nghiêm trọng: Nếu đó là bất kỳ sự an ủi nào, thì đã quá trễ trong ngày để có một sự ủng hộ để tạo ra bất kỳ sự khác biệt đại diện nào. –

6

Thông thường tôi thấy enumera tions được đặt trong lớp mà chúng đang được sử dụng nếu không có lớp nào khác sẽ sử dụng chúng, nếu không sẽ có trong tệp của riêng chúng.

3

Tôi có xu hướng tạo một tệp Enum.cs với tất cả các Enum sử dụng chung của tôi, nếu tôi có enums chỉ giả định là ONE lớp thì tôi có lồng nhau.

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