C# 静态方法是否使类a混合?

C# 静态方法是否使类a混合?,c#,data-structures,coding-style,code-cleanup,hybrid,C#,Data Structures,Coding Style,Code Cleanup,Hybrid,我最近正在处理一个表示表的类: public class Table { public StudentsOfTableList StudentsOfTable; public Point PositionUpperLeftCorner; public Size TableSize; public readonly Guid TableID; public Table() ... public static bool AreIdentica

我最近正在处理一个表示表的类:

public class Table
{
    public StudentsOfTableList StudentsOfTable;
    public Point PositionUpperLeftCorner;
    public Size TableSize;
    public readonly Guid TableID;

    public Table()
    ...
    public static bool AreIdentical(Table table1,Table table2)
    ...
    public static bool Table1InFrontOfTable2(Table table1, Table table2)
            ...
}

正如您在这里看到的,这个类实际上是一个数据结构。稍后我会编写一些代码来比较tableID以查看两个表是否相同,我真的希望重构代码,以便Table类中有一个方法来确定两个表是否相同。然而,正如书中所说的干净代码,具有公共字段和行为的类是混合类,而这些混合类是糟糕的代码。因此,我没有向类中添加检查表是否相同的实例方法,而是添加了一个比较两个表的静态方法。这个静态方法会把类变成一个混合类吗?

看看。根据你所写的,这似乎是最好的解决方案。表并没有理由知道如何将其与其他表进行比较。如果您真的想在表类中使用这种语义,请检查和使用方法。如果选择第二种解决方案,请确保覆盖

这真的很紧急,我不得不暂停我的工作,等待答案!!非常感谢你,如果你打算回答你应该大部分时间使用公共财产。常量被视为公共字段。谢谢。属性可以替换getter和setter方法吗?是和否,可以替换简单的set和get方法,长时间运行的复杂set和get方法应该仍然是公共方法。事情还有很多,但基本上可以归结为这一点。也许这可以让我们对这件事有所了解: