Appearance
构造函数
构造函数是什么
构造函数就是“对象出生时自动执行的方法”。你写一个类,然后用 new 创建对象时,C# 会自动调用构造函数,用来给字段、属性设置初始值。
c
public class PlayerStats
{
public string Name;
public int Hp;
public PlayerStats(string name, int hp)
{
Name = name;
Hp = hp;
}
}
PlayerStats stats = new PlayerStats("Knight", 100);这里 new PlayerStats("Knight", 100) 会自动调用:
c
public PlayerStats(string name, int hp)构造函数三条硬规则
- 名字必须和类名一样。
- 没有返回类型,不能写
void。 - 通常用来初始化对象,而不是写复杂游戏逻辑。
错误例子:
c
public void PlayerStats()
{
}这不是构造函数,因为它写了 void,它只是一个普通方法。
常见类型
无参构造函数:
c
public PlayerStats()
{
Name = "Player";
Hp = 100;
}有参构造函数:
c
public PlayerStats(string name, int hp)
{
Name = name;
Hp = hp;
}构造函数重载:
c
public PlayerStats()
{
Name = "Player";
Hp = 100;
}
public PlayerStats(string name, int hp)
{
Name = name;
Hp = hp;
}构造链 this(...):
c
public PlayerStats() : this("Player", 100)
{
}意思是:无参版本把活交给有参版本做,避免重复代码。
Unity 特别重点
普通 C# 类可以这样创建:
c
PlayerStats stats = new PlayerStats("Knight", 100);但 Unity 的 MonoBehaviour 脚本不要这样写:
c
PlayerController controller = new PlayerController(); // 不推荐Unity 组件脚本是挂在 GameObject 上,由 Unity 引擎管理生命周期。初始化组件引用时,优先用:
c
void Awake()
{
rb = GetComponent<Rigidbody>();
}简单记: 普通数据类:用构造函数。 Unity 组件脚本:用 Awake() / Start()。
参考链接