我有一个接收编码对象作为参数的函数。但是,我认为其他程序员传递枚举值而不是编码对象可能更容易(特别是对于不习惯处理不同编码的程序员)。我在 C# 中找不到任何内置的 Encoding 枚举...我是否遗漏了什么或者我应该创建自己的枚举吗?
The idea of using an enum was to help programmer that may not know where to get the different Encoding objects
遵循最小惊讶原则。想要更改编码的开发人员将知道(或者至少需要知道)他们在做什么,因此他们应该知道如何获得表示他们想要的编码的 Encoding 实例使用。
如果他们不这样做,他们可以在网络上搜索 .net get encoding for codepage XYZ",将他们定向到 MSDN 页面以获取 Encoding.GetEncoding()
。而如果您引入一个新的枚举,他们的 Google 搜索 .net get TheBlackSmurf.EncodingEnum for codepage XYZ" 将产生零结果。
不要迎合那些不知道自己在做什么的人。
如果相反,您打算使用枚举,那么确实想要更改编码并知道要使用哪个以及如何获取它的开发人员可能无法利用这是因为您没有想到那个,也没有将它包含在您的枚举中。
另一方面,如果出于某种原因您的软件只能支持少量编码,枚举可能是一个可行的解决方案。
我是一名优秀的程序员,十分优秀!