有没有办法覆盖 c# 枚举



我的 C# 系统处理来自多个客户的付款信息,这些客户使用各种格式向我们提交文本文件。它们都有共同的信息,例如付款日期,金额,检查号等。

我很想设置一个基于客户覆盖的通用枚举。例如:

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# 中做到这一点?

不,您不能覆盖枚举。它们是编译时常量。

我建议退后一步,重新考虑一下,因为很容易过度设计一个想法,我相信你正在这样做。有类似的方法可以完成您正在尝试的操作。

您可以比较枚举值,但这不是您的问题,通过示例进一步混淆它是不值得的。只是一个建议...根据我的观点和经验,我建议采用完全不同的方法,并相信你会更快乐。 我知道我已经把想法追逐到几天的工作中,只是意识到我以后可以用另一种方式完成它,而另一种方式要简单得多。

最新更新