Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 接口的命名样式_C#_Naming - Fatal编程技术网

C# 接口的命名样式

C# 接口的命名样式,c#,naming,C#,Naming,查看INotifyPropertyChanged接口,我想知道命名接口的样式是否也应该允许“IDoThis”样式。大多数接口似乎是以“我是”风格命名的,即“IEqualityComparer”或“IPersistable” 在.NET基本库中是否有更多第一个命名变量的示例 还有,我错过的C#命名指南是否有更新,正如MSDN仍然指出的那样: 名称与名词、名词短语或形容词的接口 “描述行为” 背景是当前项目中命名约定的冲突,我认为“IDoThis”-接口应该重新命名,以符合框架的常见命名约定。我认为

查看
INotifyPropertyChanged
接口,我想知道命名接口的样式是否也应该允许“IDoThis”样式。大多数接口似乎是以“我是”风格命名的,即“IEqualityComparer”或“IPersistable”

在.NET基本库中是否有更多第一个命名变量的示例

还有,我错过的C#命名指南是否有更新,正如MSDN仍然指出的那样:

名称与名词、名词短语或形容词的接口 “描述行为”


背景是当前项目中命名约定的冲突,我认为“IDoThis”-接口应该重新命名,以符合框架的常见命名约定。

我认为您的示例是一个例外,因为没有一个简洁的名词、名词短语或形容词那么有表现力(
IPropertyChangingNotifier
是一个满嘴脏话的人)


该框架的另一个例外是
非规范化ForIsolatedStore
(比
非规范化ForIsolatedStore
)我必须承认,我从来没有感觉到需要使用动词或动词-名词后缀作为接口名称。大多数情况下,名词或形容词后缀如指南所述

考虑到接口通常是方法和属性的集合,使用IVerb或IVerbNoun类型名称在大多数情况下是不合理的


您有目前正在使用的IVerb或IVerbNoun接口名称的示例吗?

我们在创建描述哪些项可以提供或哪些项“有”的接口时遇到了这种命名怪癖。我们使用它,因为它让我们在混合中泄漏了一些代码:IHasStatistics等:-)
INotifyPropertyChanged
INotifyPropertyChanging
可能是例外,而不是规则。请注意,它们无论如何都没有多大意义,因为您不会通知已更改或正在更改的属性,但会通知有关所述属性的某人或某事,或者当属性已更改/正在更改时。@Adamhuldsworth::)在该示例中,我会选择“IStatistic”或“IStatisticProvider”。但是LOLCode肯定会让名字更有趣。现在我在哪里可以添加一个接口来定义另一个类是否可以有一个bucket…。@O.R.Mapper:是的,我也觉得它们像是例外,但在.NET基本libs中看到命名约定被打破似乎很奇怪。我想至少在那里,点名警察会严密监视。所以,也许这种风格在内部是允许的。@GaussZ女士,我在等待有一天,我们的一个班级负责分发奶酪汉堡。。。但就你的观点而言,大多数时候我们的命名都是合理的。啊,谢谢你提供了额外的例子。我想知道在这个框架中可以找到多少。如果有一个简单的语法分析,你就可以浏览一下接口列表。我没有使用它们,因为我坚持“我是”的风格。但是其他团队成员使用了很多“iProviderUsers”、“ISaveUsers”或“ICompile”,例如……也许接口名称是由具体化驱动的,而具体化又可能是名称不好的……这似乎是个人对接口的偏好,这些接口可以说成一句话,因此类标题可以理解为:“类驱动程序:我驾驶汽车”。很有趣。让我想起了一个老的C承包商,他总是声明一个常数,叫做chicken,这样他的第一行就可以是:chicken char main()