Tôi tưởng tượng tất cả mọi người đã nhìn thấy mã như:Sử dụng thuộc tính cắt giảm enum để lập bản đồ enum và enum/const để statments tắc hành động
public void Server2ClientEnumConvert(ServerEnum server)
{
switch(server)
{
case ServerEnum.One:
return ClientEnum.ABC
//And so on.
Thay vì badness này, chúng ta có thể làm somthing như:
public enum ServerEnum
{
[Enum2Enum(ClientEnum.ABC)]
One,
}
Bây giờ chúng ta có thể sử dụng sự phản chiếu để trích xuất thông qua ServerEnum và nhận ánh xạ chuyển đổi từ chính khai báo enum.
Sự cố tôi gặp phải ở đây là trong khai báo thuộc tính Enum2Enum.
Điều này hoạt động nhưng thay thế đối tượng o bằng Enum e thì không. Tôi không muốn để có thể vượt qua trong các đối tượng để các nhà xây dựng, chỉ có enums khác.
public class EnumToEnumAttribute : Attribute
{
public EnumToEnumAttribute(object o){}
}
Điều này không biên dịch được.
public class EnumToEnumAttribute : Attribute
{
public EnumToEnumAttribute(Enum e){}
}
Có lý do gì cho lỗi biên dịch không? Làm cách nào khác tôi có thể chuyển thông tin cần thiết để lập bản đồ bên cạnh:
EnumtoEnumAttribute(Type dest, string enumString)
Điều này có vẻ quá dài nhưng tôi đoán tôi sẽ sử dụng nó.
Bạn đang gặp phải lỗi biên dịch nào? Ở đâu? –