是否可以指定嵌套类的成员可以由封闭类访问,但不能由其他类访问?
这是问题的说明(当然我的实际代码有点复杂......):
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
, but Journal
必须能够创建它们。如果我将构造函数设为公开,任何人都可以创建实例...但如果我将其设为私有,Journal
将无法!
请注意,JournalEntry
类必须是公共的,因为我希望能够向客户端代码公开现有条目。
任何建议将不胜感激!
更新:感谢大家的意见,我最终选择了公众IJournalEntry
接口,由私有实现JournalEntry
类(尽管我的问题中的最后一个要求......)
实际上,这个问题有一个完整且简单的解决方案,不涉及修改客户端代码或创建接口。
在大多数情况下,该解决方案实际上比基于接口的解决方案更快,并且更易于编码。
public class Journal
{
private static Func<object, JournalEntry> _newJournalEntry;
public class JournalEntry
{
static JournalEntry()
{
_newJournalEntry = value => new JournalEntry(value);
}
private JournalEntry(object value)
{
...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)