【问题标题】:Are Properties technically considered nonstatic in C#?C# 中的属性在技术上被认为是非静态的吗?
【发布时间】:2025-11-21 16:10:01
【问题描述】:

我的教科书是指 this 引用,它首先暗示一个属性在某种程度上是静态的,它不会为每个对象存储一个,而是为整个类存储一个。后来它说一个属性是非静态的。我真的很困惑。这是什么?

【问题讨论】:

  • 不清楚,能否用课本中的例子或具体文字详细说明?
  • 它说:实例方法和属性是非静态的。我们指的是具有如下属性的课程书:Title {get{return title;}}。
  • 为什么这个问题被关闭为“不具建设性”?这似乎不适合这里。
  • 我不知道为什么这没有建设性。投票重新开放。但是,OP,请澄清这句话的确切内容。

标签: c# oop properties


【解决方案1】:
  • 属性可以是静态的也可以不是静态的。
  • 静态属性有'static'关键字,默认不是静态的。
  • 为整个类存储静态属性(只有一个)。
  • 非静态属性按实例存储。

【讨论】:

    【解决方案2】:

    属性可以是静态的也可以是非静态的,您可以使用 static 关键字来决定。

    public static int StaticProperty {get; set; }
    public int InstanceProperty {get; set; }
    

    顺便说一句,一个属性实际上是两种方法(如果您只实现setget,则只有一种方法)。

    public int MyProperty {get; set; }
    

    等价于

    public void set_MyProperty(int value);
    public int get_MyProperty();
    

    【讨论】: