C# - 无法在构造函数中声明私有变量

时间:2017-05-23 18:30:22

标签: c# constructor

我无法在C#的类构造函数中声明私有变量。当我试图声明一个私有的DateTime变量时,我遇到了这个问题。这是我遇到这个问题时的代码:

namespace FirstCSApp
{
    public class MyStopWatch
    {
        public MyStopWatch()
        {
            private DateTime _start = new DateTime();
        }
    }
}

VS给了我两个错误:
1)在开始大括号后,我收到错误“ expected} ”和,2)在最后一个大括号,我收到一个错误,上面写着“类型或命名空间定义,或者期望文件结尾

我解决问题的方法是声明变量在构造函数外部,然后在构造函数中初始化它。但是,我仍然不明白为什么我无法在构造函数中声明和初始化私有变量,而声明没有public / private修饰符的变量就可以了。

3 个答案:

答案 0 :(得分:2)

  

我仍然不明白为什么我无法在构造函数中声明和初始化私有变量,而声明没有public / private修饰符的变量就可以了。

因为声明了一个"变量"使用公共/私有修饰符外部方法和构造函数创建字段,与局部变量不同,这是在方法内部声明变量时获得的结果构造

答案 1 :(得分:1)

  

但是,我仍然不明白为什么我无法在构造函数中声明和初始化私有变量,而声明没有public / private修饰符的变量就可以了。

这就是编写C#规范的方式。无法在类方法或构造函数中声明类级实例变量(公共或私有)。

查看MSDN documentation以了解有关C#类的讨论。

答案 2 :(得分:0)

您需要阅读变量范围。如果你打算分享"分享"如果将此变量与类的其他方法一起使用,则必须在类范围内声明该变量。

在METHOD类中声明的任何变量只能从该方法中访问。

https://msdn.microsoft.com/en-us/library/ms973875.aspx