gpt4 book ai didi

C# 私有(private)、静态和只读

转载 作者:IT王子 更新时间:2023-10-29 04:22:50 27 4
gpt4 key购买 nike

我在审查 log4net 的一些代码时遇到了这个问题。

private static readonly ILog logger = LogManager.GetLogger(typeof(AdminClient));

我想知道为什么你需要有 private static readonly。

根据我的理解,private 意味着除非有访问器方法或 get 属性,否则不能在类外使用该变量。

static 意味着该变量仅在该文件中起作用。

readonly 意味着您只能读取值而不能分配它。

所以,我在想写这段代码的人。将其声明为私有(private)的,因为他们不希望它在类之外使用,而声明为静态的,因此不希望它在文件之外使用。但是,如果有一个 get 属性将静态阻止这种形式的发生。

我觉得我能理解readonly,值只能读取不能设置。

非常感谢任何建议,

最佳答案

  • private 任何人都不应在类外使用记录器字段(即使在子类中),如果您不设置此字段,任何其他类都可以使用您的记录器来记录您类的名称。
  • static 该属性附加到类,因此它不会重复类的每个实例。如果你不设置这个,记录器属性将在系统创建对象的每个实例中占用额外的内存空间(你误解了这一点)。
  • readonly 不应修改记录器字段。

关于C# 私有(private)、静态和只读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/968132/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com