gpt4 book ai didi

c# - 初级/入门级及其 super 是否有任何命名约定?

转载 作者:太空宇宙 更新时间:2023-11-03 20:42:05 26 4
gpt4 key购买 nike

我有一个关于 C# 中的命名约定的问题,我认为大多数先前提出的问题或常用资源(如 MSDN Naming Guidelines)均未涵盖该问题。 .大多数现有的命名约定都集中在框架和其他类要使用的东西上。这可能有点不同。

您如何命名 Main() 所在的类?它与其父类(super class)有何关系?

假设您是一名初出茅庐的程序员,并且您创建了一个与此站点非常相似的小型应用程序。你可能会做这样的事情。

// 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”这个词的可扩展类。

最佳答案

我认为您应该保持原样(通常称为 Program),而不是支持组合而不是继承

入口点是一个静态方法,因此绝对没有理由创建涉及持有 Main 方法的类的继承树。

关于c# - 初级/入门级及其 super 是否有任何命名约定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2142125/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com