【问题标题】:Coding style with generics and inheritance [duplicate]具有泛型和继承的编码风格[重复]
【发布时间】:2011-12-31 01:24:34
【问题描述】:

可能重复:
How to name C# source files for generic classes

我们目前正在重新评估从通用类继承时如何处理通用类。目前我们会将以下两个类定义放在同一个文件中

class Foo
{
    // code for class
}

class Foo<T> : foo
{
   // code for class
}

我的问题很简单,我们应该将它们保存在同一个文件中,还是将它们拆分为单独的文件?

到目前为止,将它们保存在同一个文件中的优点是所有代码都在你面前。缺点是当两个类都变得足够大时,它可能变得不可读。

我想要的是为什么我们应该做其中一个或另一个的充分理由。如果您推荐单独的文件,我还希望您包括可能的命名约定,或者一种策略来解决我们只能有一个名为 Foo 的文件这一事实

【问题讨论】:

  • 这里有几个答案链接到this question,这似乎在问同样的事情。

标签: c# generics coding-style


【解决方案1】:

这是一个见仁见智的问题,但我会将它们保存在同一个文件中,而不是尝试为其中一个或另一个维护一些命名约定。

虽然我订阅了一个课程,一个文件,但我认为将它们放在一起是有价值的。我们真的把这些当作一个类,对吧?通常,Foo 将是抽象的,并且只是使用我们的泛型类型的一种方式……嗯,更通用 - 在类型参数无关紧要且在编译时无法知道的地方。

如果类变得太大,无论如何都应该是一个危险信号,应该打破一些责任。

【讨论】:

  • 确实这是一个见仁见智的问题,这根本不是一个糟糕的答案,尽管它与我的相反。 +1
  • 这也是一个有效的意见,绝对需要考虑。
【解决方案2】:

除非类是完全微不足道的,否则我从不在一个文件中放置多个类。如果您有一个可预测的、唯一的文件名,并且通常具有基于文件夹的命名空间,那么 IMO 更容易准确地找到您要查找的类。

为了命名你的文件,可能是这样的:

foo.cs
foo_t.cs
foo_tuv.cs // for a foo class with three generics

【讨论】:

  • 正如 Jay 在他的回答中指出的那样,这是一个风格意见问题。
【解决方案3】:

我建议将类保存在同一个文件中。它使查找所有 Foo 类变得更加容易。此外,通过代码折叠(区域),您可以通过折叠另一个类轻松查看单个类。

也就是说,我不会说任何一种方式都是错误的。最后,这是需要一些经验才能得出您的个人偏好并在您的特定项目中找到适合您的东西之一。而且您可能会发现对一个项目有效的方法不一定适用于您的下一个项目。

【讨论】:

    【解决方案4】:

    回复here:

    我认为解决这个问题的常见方法是将文件命名为 这个:

    {ClassName}`{NumberOfGenericParameters}

    这会给你这个文件名:

    Bag.cs​​ 和 Bag`1.cs

    这是 Microsoft 在 Asp.net 等框架中处理此问题的方式 MV。

    【讨论】:

      【解决方案5】:

      将这些类保持小,您可以将它们保存在一个文件中。如果你不能让它们变小,就把它们分开。如果您更喜欢将它们保存在单独的文件中,也可以。但无论如何都要保持它们很小。如果是单独的文件,我会使用 FooGeneric 名称,但这里有人 How to name C# source files for generic classes 推荐 Foo`1(用于 1 个参数)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-17
        • 2021-10-27
        • 1970-01-01
        • 1970-01-01
        • 2011-08-19
        相关资源
        最近更新 更多