C#类名以I开头

本文关键字:开头 | 更新日期: 2023-09-27 18:20:44

我正在编写一个类,其中名称以I开头(因为这是我们正在集成的产品的名称-不能更改)。

公约规定类名的开头有一个大写字母,但在这种情况下,它在消费者看来是一个接口。

这里有没有任何文档可以指导开发人员正确的方法?此外,如果我确实需要实现和接口,应该是IiProduct/IiProduct吗?

编辑添加:

出于显而易见的原因,我不能提及该产品,但它遵循了与苹果相同的资本化惯例。因此,IPhoneClass(遵循其品牌,但显示为一个界面)而不是IPhoneClass(遵守惯例,而不是品牌)。

C#类名以I开头

如果产品名称例如为iPhone,那么在这种情况下,我将调用类Iphone以保持类命名的一致性。接口应该是IIphone,它看起来不太好,但它的含义很清楚(因为它遵循惯例)。

我相信,如果人们认为这是一个接口,而不是因为产品遵循惯例而没有大写,那么使用该类的人会更沮丧。

接口以I作为前缀,然后以大写字母开头的接口名称。所以接口将是IImposibleProduct,类将是ImposibleProduct

我遵循这个接口约定。

  1. 在界面中查找最重要的方法
  2. 添加able后缀
  3. 第一个字母大写
  4. 添加I前缀

参见示例

interface ICallable{
    public void call();
}

ICallable=I+CapitlizeFirstLetter(呼叫+able)

我认为大多数开发人员都遵循这些惯例。从这个角度来看,IClassIDoneICallIncomeTax等不是接口。但IClassableICallableITaxable等分别是接口。

如果类名以I开头,则这是可以的,例如IndexIdea都是有效名称。IIndex将是一个有效的接口名称。

为了获得惯例方面的帮助,您可以考虑购买一份Code Complete,它在许多编程方面都是一个惊人的指导来源。

你能修改类名以确保它不会以I开头吗?

不过,通常情况下,不属于单词的I表示接口。以I开头的类名(例如,Interpolator)很好,不会特别含糊。

您可以将您的"坏"调用名称类用大写字母"I"包装为其他名称例如:

    //"Bad" name class
public class IBadClass
{
    public void SomeFuncA(int i)
    {
    }
    public void SomeFunctB(string str)
    {
    }
}
//"Better" name class
public class BetterNameClass
{
    private IBadClass _badClass;
    public BetterNameClass()
    {
        _badClass = new IBadClass();
    }
    public void SomeFuncA(int i)
    {
        _badClass.SomeFuncA(i);
    }
    public void SomeFunctB(string str)
    {
        _badClass.SomeFunctB(str);
    }
}