Eri*_*res 10 .net c# naming-conventions
我最近在工作代码库中注意到了一种模式,我们的大多数模型类都有一个名称,如User,并且有一个继承类型,其上有额外的字段,称为UserEx.我也注意到了这一点在C#异步CTP,他们把更多的静态方法工作在一个名为TaskEx类(由于技术的限制,因为他们无法改变现有的库).在工作中与某人交谈时,我了解到-Ex类存在以优化网络传输(如果需要,您可以只提取最低限度).那么,我的问题是-Ex代表什么?我能想到的唯一可能就是"额外".
Cod*_*ray 20
其他答案都是正确的:Ex后缀代表"扩展".这是一种引入新类或方法而不过时或删除旧类的方法,这是在引入新功能时保持向后兼容性的常用方法.
在Windows API做这一切的地方,如解释在这里.
汉斯在他的解释中暗示了这种方法的问题:它没有扩展.如果要扩展"扩展"功能怎么办?你叫它FunctionExEx吗?这看起来很愚蠢.
事实上,愚蠢的是,微软自己的.NET编码指南(尽管它们是主观的)特别建议不要附加Ex到类型.相反,如果你必须这样做,你应该使用一个数字:
MyType
MyType2 // modified version
MyType3 // oh wait, we had to modify it again!
Run Code Online (Sandbox Code Playgroud)
把这个归咎于糟糕的计划作为试图做的事情是有点为时过早.当写现实世界的应用和框架,您经常需要出货.这意味着获得了该功能的快速和肮脏的版本工作.后来,你认为这是一个糟糕的设计,需要改变一些东西.你引入了一个具有不同名称的新类型,而不是抛弃你的手并完全重写(产生巨大的延迟并废弃所有旧代码).后见之明总是20/20.
| 归档时间: |
|
| 查看次数: |
2562 次 |
| 最近记录: |