编程语言
首页 > 编程语言> > c#-接口类型的代码协定类的命名约定

c#-接口类型的代码协定类的命名约定

作者:互联网

我正在使用System.Diagnostics.Contracts命名空间中的Code Contracts类来为我的对象定义一些合同,并且我想知道在针对基本接口定义合同时其他人如何命名其合同类.让我用一个小例子来说明:

[ContractClass(typeof(AnimalContract))]
public interface IAnimal
{
    // definition here
}

[ContractClassFor(typeof(IAnimal))]
public class AnimalContract : IAnimal
{
    // explicit interface implementation here
}

在此示例中,我将合同类命名为AnimalContract,但是有更好的名称吗?因为协定是针对接口定义的,所以我几乎要命名类IAnimalContract来说明它是IAnimal接口的协定.这样,当我在解决方案资源管理器中看到两个项目时,它们就在视觉上“捆绑”在一起,这有助于使事物保持干净美观.当然,合同本身不是接口,因此以这种方式命名对我来说很难闻.

在这些情况下,你们(和gal)如何命名您的合同类别?是否有公认的惯例?

解决方法:

Code Contracts User Manual同时使用IAnimalContract格式(请参见2.8节)和ContractForIAnimal格式(请参见4.1节).因此,代码合同团队本身并没有希望您遵循的一种特定样式.

但是,我看到IAnimalContract样式最常用,遵循一个通用的命名约定绝对很重要.此外,我认为通过查找接口类型名称来快速找到合同类比仅一起查找所有合同类更有用.

就个人而言,我将合同类与接口保存在相同的文件中,而我很少这样做.我认为合同是界面的一部分,应尽量保持紧密.

标签:naming-conventions,code-contracts,design-by-contract,c,net
来源: https://codeday.me/bug/20191105/1998483.html