C# 关于c中对象的基本构造函数问题#

C# 关于c中对象的基本构造函数问题#,c#,C#,嘿,伙计们,从C开始。我有点怀疑,如果有人能帮我,我会非常感激的 问题1 在上面的程序中,form1()构造函数应该首先运行,但实例化是在构造函数外部完成的,那么构造函数如何知道实例化并反过来使用guy的数据成员(cash是guy类的数据成员)?编译代码时,实例化将被移动到构造函数中。它将在构造函数主体执行之前实例化。编译代码时,实例化将移动到构造函数。它将在构造函数主体执行之前实例化。@Mehrdad已经处理了排序问题。不过,关于你的第二个问题,我认为你需要仔细阅读范围界定和可访问性规则。评

嘿,伙计们,从C开始。我有点怀疑,如果有人能帮我,我会非常感激的


问题1
在上面的程序中,form1()构造函数应该首先运行,但实例化是在构造函数外部完成的,那么构造函数如何知道实例化并反过来使用guy的数据成员(cash是guy类的数据成员)?

编译代码时,实例化将被移动到构造函数中。它将在构造函数主体执行之前实例化。

编译代码时,实例化将移动到构造函数。它将在构造函数主体执行之前实例化。

@Mehrdad已经处理了排序问题。不过,关于你的第二个问题,我认为你需要仔细阅读范围界定和可访问性规则。评估顺序与范围相关,因为有一些规则根据范围定义评估顺序,但特定成员的知识(可访问性)不由评估顺序定义。在这种情况下,因为变量是实例变量,所以可以在类中的任何位置引用它,包括构造函数。如果在运行构造函数之前没有给它一个值,您会得到一个空引用异常,但是访问它的成员的合法性取决于,而不是什么时候赋值,而是变量及其成员是如何根据可访问性声明的。

@Mehrdad's处理了排序问题。不过,关于你的第二个问题,我认为你需要仔细阅读范围界定和可访问性规则。评估顺序与范围相关,因为有一些规则根据范围定义评估顺序,但特定成员的知识(可访问性)不由评估顺序定义。在这种情况下,因为变量是实例变量,所以可以在类中的任何位置引用它,包括构造函数。如果在运行构造函数之前没有给它一个值,您会得到一个空引用异常,但是访问它的成员的合法性取决于,而不取决于赋值的时间,但是变量及其成员是如何在可访问性方面声明的。

看看如何回答所有构造函数和成员变量初始化问题。这是一个非常详细的解释。

看一看,回答所有构造函数和成员变量初始化问题。这是一个非常详细的解释。

我认为是重复的-不,不是重复的。这是同一个标题,但不是同一个问题……关于那个问题的第二个问题是相同的。我认为是重复的——不,不是重复的。这是同一个标题,但不是同一个问题……关于这个问题的第二个问题是相同的。
   namespace borrowmoney
    {
        public partial class Form1 : Form
        {
            guy nikhil = new guy();

             public Form1()
            {
                InitializeComponent();


                nikhil.cash=50;
             }
          }
    }