Tôi đã nhìn thấy một vài chủ đề tương tự cho câu hỏi này, nhưng không ai trong số họ thực sự trả lời câu hỏi tôi muốn hỏi. Đối với người mới bắt đầu, thật không may là tôi đang làm việc với mã API hiện tại thật đáng buồn, trong khi có cách tốt hơn để làm những gì tôi hỏi, tôi bị nhốt để làm điều tương tự như vậy khả năng tương thích ngược không thể thương lượng được.C#: Enums trong giao diện
Tôi có lớp phản hồi hiện chứa enum cho mã lỗi và mô tả chuỗi. Các mã lỗi xác định một tập hợp khá tốt đẹp và đầy đủ các câu trả lời được tất cả rất semantically cùng với các hoạt động mà họ đang sử dụng.
Thật không may, bây giờ tôi phải thêm quy trình làm việc khác cho một tập hợp các đối tượng API tương tự, và điều này sẽ yêu cầu mô tả chuỗi, điều này là tốt, nhưng cũng là mã lỗi enum bao gồm một bộ mã lỗi hoàn toàn không liên quan. Các mã lỗi (và các khía cạnh khác của mô hình đối tượng) sẽ được sử dụng trong rất nhiều các lớp giống nhau, vì vậy nó sẽ là tốt đẹp để có được một giao diện đi để tôi có thể chạy các đối tượng thông qua cùng một khuôn khổ.
Mục đích ở đây là tạo hợp đồng cho biết "Tôi có mã lỗi và mô tả mã lỗi đó".
Tuy nhiên, theo như tôi biết không có cách nào để thêm một mục vào một giao diện như
public interface IError
{
enum ErrorCode;
string Description;
}
cũng không phải là có một cách để thể hiện
public interface IError<T> where T: enum
{
T ErrorCode;
string Description;
}
Bất cứ ai từng chạy lên chống lại một cái gì đó như thế này trước đây?
gì hoạt động, bạn sẽ cần thế nào để thực hiện trên ErrorCode được cung cấp bởi giao diện này? Nếu bạn không cần truy cập vào hành vi cụ thể của Enum, bạn có thể cho phép ErrorCode là bất kỳ loại nào không có hại. –