Tag: package private

为什么C#没有包私有?

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