我正在学习 C# 并且来自 Java 世界,看到 C# 没有“私有包”我有点困惑。我看到的关于这方面的大多数评论都是“你不能这样做;语言不是这样设计的”。我还看到了一些变通方法,这些变通方法涉及internal并partial伴随着评论说这些变通方法违背了语言的设计。
为什么 C# 是这样设计的?另外,我将如何执行以下操作:我有一个Product班级和一个ProductInstance班级。我想要创建的唯一方法ProductInstance是通过Product类中的工厂方法。在 Java 中,我会放入ProductInstance与 相同的包Product,但创建它的构造函数package private,以便只能Product访问它。这样,任何想要创建的人ProductInstance都只能通过Product类中的工厂方法来创建。我将如何在 C# 中完成同样的事情?