在C#中,类未定义构造函数会发生什么?如何实例化该类?
C#中无显式构造函数的类的行为与实例化方法
一、未定义构造函数时的情况
当C#类中没有显式定义任何构造函数时,编译器会自动为该类生成一个无参数的默认构造函数。这个默认构造函数的访问权限和类本身一致:
- 如果类是
public,默认构造函数就是public; - 如果类是
internal或private,默认构造函数的访问级别也会匹配类的权限。
另外要注意两个细节:
- 静态成员的初始化不会由这个默认构造函数处理,静态成员会由编译器自动生成的静态构造函数负责初始化;
- 一旦你给类定义了任意构造函数(哪怕是带参数的),编译器就不会再生成这个默认的无参构造函数了。
二、无显式构造函数的类的实例化方法
直接通过new关键字调用默认的无参构造函数即可,写法和有显式无参构造函数的类完全一致:
示例代码:
// 没有定义任何构造函数的类 public class User { public int Id { get; set; } public string Username { get; set; } } // 实例化操作 User newUser = new User(); // 之后可以正常使用实例的属性 newUser.Username = "Alice";
⚠️ 注意:如果是静态类,不管有没有构造函数都无法实例化,因为静态类的设计本身就是不允许创建实例的。
内容的提问来源于stack exchange,提问作者Sara Fotros
相关产品推荐
相关产品推荐

