Vì C# thiếu hỗ trợ cho các chức năng tự do, tôi thấy khó tìm một nơi để đặt các chức năng chuyển đổi. Ví dụ, tôi muốn chuyển đổi một enum thành một số. Trong C++, tôi sẽ thực hiện chức năng freestanding sau đây cho điều này:Nơi đặt chức năng chuyển đổi?
UINT32 ConvertToUint32(const MyEnum e);
Làm cách nào để tôi có thể thực hiện điều này một cách thanh lịch trong C#? Tôi có nên tạo một lớp tĩnh giả để giữ chức năng không, và nếu có, làm cách nào để tìm một tên có ý nghĩa cho nó? Hoặc tôi có nên thực hiện chuyển đổi một phần không?
Bất kỳ ý tưởng nào?
Xin cảm ơn trước.
Cập nhật: Nhìn lại, ví dụ của tôi không được chọn rất tốt vì có tồn tại chuyển đổi mặc định giữa enum và int. Đây sẽ là một ví dụ tốt hơn:
Person ConvertToPerson(const SpecialPersonsEnum e);
MyEnum e = (MyEnum) 3; hoặc MyInt i = (Int) e; là cả hai cách chấp nhận được để chuyển đổi giữa int và enum trong C#.Điều đó đang được nói, tôi luôn đặt chức năng chuyển đổi của tôi trong một lớp tiện ích. – jle
+1 'một phần lớp Convert' là ý tưởng tốt. –
Nếu bạn muốn chuyển đổi từ một enum thành một lớp Person thì ** viết toán tử chuyển đổi **. Tại sao lộn xộn xung quanh với một phương pháp khi bạn chỉ có thể viết một nhà điều hành mà làm những gì bạn muốn? –