我们可以在 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
对象可能具有 IsPlaying
、Volume
之类的属性。这些是对象的 "state"。状态属于对象,而不是该对象的一种特定方法,例如 StartPlaying()
.
局部变量的目的是临时存储一些值以帮助方法完成其工作。它们有点像废纸。您可能有一个名为 SolveQuadratic(double a, double b, double c)
的方法,您可能有一个名为 discriminent
的局部变量存储 b * b - 4 * a * c
,这样您就不必每次都重写表达式 b * b - 4 * a * 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
对象可能具有 IsPlaying
、Volume
之类的属性。这些是对象的 "state"。状态属于对象,而不是该对象的一种特定方法,例如 StartPlaying()
.
局部变量的目的是临时存储一些值以帮助方法完成其工作。它们有点像废纸。您可能有一个名为 SolveQuadratic(double a, double b, double c)
的方法,您可能有一个名为 discriminent
的局部变量存储 b * b - 4 * a * c
,这样您就不必每次都重写表达式 b * b - 4 * a * c
.
这就是为什么您不能在静态方法或其他方法中拥有属性的原因。他们不属于那里。