相关疑难解决方法(0)

如何将对嵌套类成员的访问限制为封闭类?

是否可以指定封闭类可以访问嵌套类的成员,而不是其他类?

这是问题的一个例子(当然我的实际代码有点复杂......):

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; }
    }

    // ...
}
Run Code Online (Sandbox Code Playgroud)

我想阻止客户端代码创建实例JournalEntry,但Journal必须能够创建它们.如果我将构造函数Journal设为public,那么任何人都可以创建实例......但如果我将其设为私有,则无法执行!

请注意,JournalEntry该类必须是公共的,因为我希望能够将现有条目公开给客户端代码.

任何建议将不胜感激!


更新:感谢大家的意见,我最终选择IJournalEntry了私人JournalEntry课程实现的公共界面(尽管我的问题是最后一个要求......)

c# nested-class access-levels

58
推荐指数
4
解决办法
2万
查看次数

标签 统计

access-levels ×1

c# ×1

nested-class ×1