首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在.Net中向类型名称添加-Ex

在.Net中向类型名称添加-Ex
EN

Stack Overflow用户
提问于 2011-12-21 23:53:45
回答 6查看 3.1K关注 0票数 14

我最近在我们的代码库中注意到了一种模式,其中大多数模型类都有一个名称,比如User,并且有一个继承类型,它上面有额外的字段,称为UserEx。我在Task中也注意到了这一点,他们将C#的额外静态方法放在一个名为TaskEx的类中(由于技术限制,因为他们不能改变现有的库)。与工作中的某个人交谈时,我了解到-Ex类的存在是为了优化网络传输(如果需要,您可以只使用最少的类)。那么,我的问题是,-Ex代表什么?我唯一能想到的可能是“额外”。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-12-22 00:04:06

其他的答案都是正确的:Ex后缀代表“扩展”。它是一种引入新类或方法的方法,而不会过时或移除旧类或方法,这是一种在引入新功能的同时保持向后兼容性的常见方法。

Windows API随处可见,正如here所解释的那样。

汉斯在他的解释中暗示了这种方法的问题:它不能扩展。如果你想扩展一个“扩展”函数怎么办?你管它叫FunctionExEx吗?这看起来很愚蠢。

如此愚蠢,事实上,微软自己的.NET编码指南(尽管它们是主观的) specifically recommend appending Ex to a type。相反,如果您必须这样做,您应该使用一个数字:

代码语言:javascript
复制
MyType
MyType2   // modified version
MyType3   // oh wait, we had to modify it again!

将此归咎于dowhilefor试图做到的计划不周还为时过早。在编写现实世界的应用程序和框架时,您通常需要发布。这意味着要得到一个快速有效的函数版本。后来,你决定这是一个糟糕的设计,有些东西需要改变。而不是举起手来完全重写(产生巨大的延迟和过时的所有旧代码),您引入了一个不同的名称的新类型。后见之明总是20/20。

票数 26
EN

Stack Overflow用户

发布于 2011-12-21 23:57:49

Ex中结束一个新的类、方法或类型是一种命名约定,就像任何命名约定一样,它受制于实现它的人的突发奇想。

没有硬性的规则,它的正确性不亚于将2附加到类的末尾(或ExtraMoreDidntWantToMessWithThePublicApi)。

至于为什么使用它,微软在使用它来提供现有API的修订而不破坏旧代码方面有着悠久的历史。您可以找到此in classesin methodsin structures的示例。你也可以找到不同的例子,which instead use 2

票数 5
EN

Stack Overflow用户

发布于 2011-12-21 23:57:38

据我所知,它代表“扩展”或“扩展”。当你需要给你不能改变的东西添加功能时,它是一个常见的后缀。一个很好的例子是Win32 API中的各种-Ex函数,添加这些函数是因为C不支持函数重载。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8592579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档