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