是否可以指定嵌套类的成员可以被封闭类访问,但不能被其他类访问?
下面是这个问题的一个例子(当然,我的实际代码要复杂一些... ...) :
public class Journal
{
public class JournalEntry
{
public JournalEntry(object value)
{
this.Timestamp = DateTime.Now;
this.Value = value;
}
public DateTime Timestamp { get; private set; }
public object Value { get; private set; }
}
// ...
}
我想阻止客户端代码创建 JournalEntry
的实例,但是 Journal
必须能够创建它们。如果我将构造函数公开,任何人都可以创建实例... 但是如果我将其私有化,Journal
将无法创建实例!
请注意,JournalEntry
类必须是公共的,因为我希望能够向客户机代码公开现有条目。
如有任何建议,我将不胜感激!
更新: 感谢大家的投入,我最终使用了公共 IJournalEntry
接口,由一个私有 JournalEntry
类实现(尽管我的问题中有最后一个要求...)