ant*_*009 24 c# log4net access-modifiers
我正在审查log4net的一些代码,我遇到了这个.
private static readonly ILog logger = LogManager.GetLogger(typeof(AdminClient));
Run Code Online (Sandbox Code Playgroud)
我想知道为什么你需要私有静态只读.
从我的理解私有意味着变量不能在类外使用,除非有一个访问器方法或获取属性.
static意味着变量仅在此文件中作用域.
readonly意味着您只能从值中读取并且无法分配它.
所以,我在想那个编写这段代码的人.声明它是私有的,因为他们不希望它在类外使用和静态,因此不希望它在文件外部使用.但是,如果有一个get属性会静态阻止这种形式发生.
我想我只能理解readonly,而且只能读取和设置值.
非常感谢任何建议,
vic*_*ugo 45
我认为你误解了静态.静态并不意味着"不能在文件外使用".静态意味着:每班有一个.该声明所做的是创建一个仅分配一次(静态)的记录器,仅在类中可用(不在派生类中)(私有),并且不能写入超过其初始化(readonly).
好问题虽然!
静态不不意味着它不能从其他文件被访问-这不是C. static关键字意味着记录器对象是类变量,而不是一个实例变量,因此,即使从该类的不同的对象被访问时,他们将all都指向同一个logger对象.
| 归档时间: |
|
| 查看次数: |
9612 次 |
| 最近记录: |