我们可以在 c# 的方法中声明一个 属性 吗?

Can we declare a property inside a method in c#?

我们可以在方法内部声明一个局部变量。但为什么我们不能在方法中声明一个 属性 或字段?

在下面的示例中,我可以在方法中声明一个局部变量,但不能声明一个 属性。

我是 c# 新手。所以如果我错了请指正。

class Program
    {
        Public void Learn()
        {
           int f = 5;
          // int a { get; set;};
        }
    }

I can able to declare a field inside a static method

你声明的不是字段,而是局部变量。方法中不存在字段。

这是因为字段和属性表示对象的状态。 MusicPlayer 对象可能具有 IsPlayingVolume 之类的属性。这些是对象的 "state"。状态属于对象,而不是该对象的一种特定方法,例如 StartPlaying().

局部变量的目的是临时存储一些值以帮助方法完成其工作。它们有点像废纸。您可能有一个名为 SolveQuadratic(double a, double b, double c) 的方法,您可能有一个名为 discriminent 的局部变量存储 b * b - 4 * a * c,这样您就不必每次都重写表达式 b * b - 4 * a * c .

这就是为什么您不能在静态方法或其他方法中拥有属性的原因。他们不属于那里。