我的C#系统处理来自多个客户的付款信息,这些客户使用各种格式向我们提交文本文件。它们都有共同的信息,如PaymentDate,Amount,CheckNumber等。
我希望设置一个基于客户覆盖的通用枚举。例如:
private enum Payment { PaymentDate, Amount, CheckNumber }
private enum CustomerA { CheckNumber, Amount, PaymentDate }
private enum CustomerB { Amount, PaymentDate, CheckNumber }
如果我可以根据客户分配布局,那将是很好的。
Payment = CustomerA;
Payment = CustomerB;
然后我可以参考以下字段:
var checkNumber = line[(int) Payment.CheckNumber];
var PaymentDate = line[(int) Payment.PaymentDate];
等
每一行都会知道它自己的格式。
有没有办法在C#中执行此操作?
答案 0 :(得分:0)
不,你不能覆盖枚举。它们是编译时常量。
我建议退后一步,重新考虑这一点,因为很容易过度设计一个想法,我相信你会这样做。有类似的方法可以做你正在尝试的事情。
您可以比较枚举值,但这不是您的问题,并且通过示例进一步混淆它是不值得的。只是一个建议......在我的观点和经验中,我完全推荐一种不同的方法,并相信你会更快乐。我知道我已经把想法追到了几天的工作,只是为了意识到我可以在以后用另一种方式做到这一点,而另一种方式则更简单。