C#中是否有内置的编码枚举?

The*_*urf 1 c# enums encoding

我有一个函数接收一个Encoding对象作为参数.但是,我认为其他程序员可以更容易地传递枚举值而不是Encoding对象(特别是对于不用于处理不同编码的程序员).我在C#中找不到任何内置的编码枚举...我错过了什么或者我应该创建自己的枚举?

Cod*_*ter 5

使用枚举的想法是帮助程序员可能不知道从哪里获取不同的编码对象

追求最不惊讶的原则.想要改变编码的开发人员将知道(或者至少需要知道)他们正在做什么,因此他们应该知道如何获得表示他们想要使用的编码的Encoding实例.

如果他们不这样做,他们可以在网上搜索".net get code for codepage XYZ",将它们指向MSDN页面Encoding.GetEncoding().然而,如果你引入一个新的枚举,他们谷歌搜索".net得到TheBlackSmurf.EncodingEnum for codepage XYZ"将得到零结果.

不要迎合那些不知道自己在做什么的人.

相反,如果你打算使用一个枚举,机会是一个开发谁希望更改的编码,并知道使用哪一个,以及如何获得它,不能利用它,因为你没有想到的那一个并没有将它包含在你的枚举中.

另一方面,枚举可能是一个可行的解决方案,如果由于某种原因您的软件只能支持少数编码.