C# 类依赖性-我们可以在另一个类中使用一个类吗?反之亦然,如下所示,它们是相互依赖的?

C# 类依赖性-我们可以在另一个类中使用一个类吗?反之亦然,如下所示,它们是相互依赖的?,c#,C#,我们是否可以在另一个类中使用一个类,反之亦然,因为它们是相互依赖的?这是一个好的实践吗?是的,绝对没有什么可以阻止您这样做,这甚至是一个非常常见的场景,例如使用实体框架和描述1:1关系时。这种设计没有问题,但有一个限制:两个类必须永远驻留在同一个项目中。如果你重新设计了你的源代码,你就不能把你当前的项目分割成更小的部分 这就是为什么您有时试图通过使用接口来避免它。 您不引用具体的类型,而是引用一个接口,稍后您可以决定该接口实现哪个类。可以是你当前的班级,可以在这个项目中,也可以在另一个项目中 在

我们是否可以在另一个类中使用一个类,反之亦然,因为它们是相互依赖的?这是一个好的实践吗?

是的,绝对没有什么可以阻止您这样做,这甚至是一个非常常见的场景,例如使用实体框架和描述1:1关系时。这种设计没有问题,但有一个限制:两个类必须永远驻留在同一个项目中。如果你重新设计了你的源代码,你就不能把你当前的项目分割成更小的部分

这就是为什么您有时试图通过使用接口来避免它。 您不引用具体的类型,而是引用一个接口,稍后您可以决定该接口实现哪个类。可以是你当前的班级,可以在这个项目中,也可以在另一个项目中


在类似实体框架的场景中,不支持接口,但可以将数据类分组到同一个项目中。然后就可以了。

是的,您可以使用一个类say计算链接到同一个类计算的另一个类say事务


您不能做的一件事是链接添加程序集引用,这将导致循环依赖错误。除此之外,您可以作为任何类的成员自由地拥有任何类引用。您甚至可以让一个类引用自身。

是的,您可以。问题是什么?简短回答:是的。长答案:是的,因为在C中,类变量有引用语义,所以有一个额外的间接层次。但不能对结构执行此操作,因为它们具有值语义。顺便说一句,这样做对序列化来说是一场噩梦。是什么让你不想用这两个类编写一个小程序,使用它们,然后按compile/execute并观察答案?编译器肯定会回答这类问题。这不是类依赖关系。这两个类都可以在没有其他类的情况下实例化。
public Class Calculation
{
  public double Rate{ get; set; }
  public double Amount{ get; set; }
  public int BranchId { get; set; }
  public Transaction transaction{ get; set; }
}

public Class Transaction
{
  public string ItemName{ get; set; }
  public string ItemQuantity{ get; set; }
  public Calculation calculatedTransaction{ get; set; }
}