C#newbie here。我最近做了一个测试,询问一些C#代码的输出是什么。我没有确切的代码,但我试图从下面的内存中重新创建它。这段代码由于某种原因不能编译(因为我对这里发生的事情只有疑问,所以不是那么重要)。我试图记住的问题最多的部分是创建所有类字段的行。
以下是我的问题:
您是否可以通过调用构造函数来创建类字段?
using System;
using System.Collections.Generic;
namespace CustomFunctionTest
{
class Program
{
static void Main(string[] args)
{
new class1();
new class1("E");
}
}
public class class1
{
public static class1 test1 = new class1("A");
private class1 b = new class1("B");
public static class1 c = new class1("C");
public class1()
{
Console.WriteLine("D");
}
public class1(string str)
{
Console.WriteLine(str);
}
}
}
答案 0 :(得分:1)
1)使用“new class1();”创建类的新实例没有将它赋给变量一个有效的实例化方法吗?
是。它的构造函数可以对静态对象执行某些操作,甚至可以某种方式保留。或者,它可能只是垃圾收集。高质量的代码?通常不会。
2)每次实例化类时,如何处理静态字段?
如果存在静态构造函数,则在初始化类型时静态构造函数之前初始化静态字段,并且仅初始化类型一次。在您的示例中,没有静态构造函数,因此如果静态字段被访问,运行时会推迟初始化。
3)你甚至可以通过调用构造函数创建类字段吗?
是。类的字段通常在构造类时初始化。
答案 1 :(得分:0)