我有一个关于C#中命名约定的问题,我认为这些约定不包括在大多数先前提出的问题或MSDN Naming Guidelines这样的常用资源中。大多数现有的命名约定都集中在框架和其他类消耗的东西上。这可能有点不同。
您认为Main()所在的类名称是什么?它与超类有什么关系?
假设你是一个初出茅庐的程序员,你就像这个网站一样创建了一个小应用程序。你可能会做这样的事情。
// the title of the class happens to be the title of the project
namespace FogCreek {
public class StackOverflow {
public static Main() { ... }
}
}
但是随后你决定在你成长的过程中重构你的内脏并创建更多的Stack网站,每个网站都有自己的命名空间。
namespace FogCreek.StackSites.StackOverflow {
public class WhatDoICallThis : StackExchangeSite {
public static Main() { ... }
}
}
// elsewhere in another project...
namespace FogCreek {
public class StackExchangeSite {
...
}
}
我对将其称为StackOverflow犹豫不决,因为它的全名是FogCreek.StackSites.StackOverflow.StackOverflow。这有点多余吗?
另外,StackExchangeSite应该在FogCreek中的自己的命名空间中吗?或者它应该“高于”源自它的项目?
Company.Foobar.Widget
-> Company.Foobar.Widget.RoundWidget
-> Company.Foobar.Widget.SquareWidget
vs
Company.Foobar.Widget.BaseWidget
-> Company.Foobar.Widget.RoundWidget
-> Company.Foobar.Widget.SquareWidget
我不赞成第二个选项,因为我不记得任何使用“Base”一词的可扩展类。
答案 0 :(得分:5)
我认为您应该保持原样(通常称为Program
),而不是支持合成优于继承。
入口点是一个静态方法,因此绝对没有理由创建一个涉及持有Main方法的类的继承树。