using System.Collections;
using System.Collections.Generic;
using UnityEngine;
struct UnitProp //:System.Object
{
public long Hp;
public override int GetHashCode()
{//重写基类System.Object的函数
//如果不重写,当调用GetHashCode时,只能调用System.Object.GetHashCode,
//于是结构体被装箱为引用类型
return "UnitProp".GetHashCode();
}
}
public class GameMain : MonoBehaviour
{
void Start()
{
}
void Update()
{
var up = new UnitProp();
var hash = up.GetHashCode();
//调用基类 System.Object的任何(未Override的)函数都会导致结构体装箱成引用类型
//var name = up.ToString(); //每帧产生GC:装箱,将结构体变为堆内存上的引用类型
}
}
C# 结构体调用基类函数导致装箱
最新推荐文章于 2022-12-11 22:41:44 发布