本文主要是介绍C#每天复习一个重要小知识day2:有参与无参构造函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
using System;public class MyClass
{private int value;// 有参构造函数public MyClass(int v){this.value = v;}// 无参构造函数public MyClass(){this.value = 0;}public static void Main(string[] args){// 使用有参构造函数实例化对象MyClass obj1 = new MyClass(10);Console.WriteLine(obj1.value); // 输出 10// 使用无参构造函数实例化对象MyClass obj2 = new MyClass();Console.WriteLine(obj2.value); // 输出 0}
}
在这个示例中,有参构造函数 MyClass(int v)
接受一个整数参数并将其赋值给 value
,而无参构造函数 MyClass()
将 value
设置为默认值 0。当我们分别使用这两个构造函数来实例化对象时,可以看到它们分别起到了不同的作用。
什么情况下有参构造函数会被无参构造函数默认覆盖?
如果一个类包含了无参构造函数(默认构造函数),而且你又显式地定义了有参构造函数,那么有参构造函数会覆盖无参构造函数。
这是因为在创建类的实例时,如果提供了参数,编译器或解释器会优先选择调用有参构造函数来进行实例化;而如果没有提供参数,才会调用无参构造函数。
在这种情况下,如果你希望保留无参构造函数并且同时使用有参构造函数,你需要显式地定义无参构造函数,以确保它不会被有参构造函数所覆盖。
这篇关于C#每天复习一个重要小知识day2:有参与无参构造函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!