我坚持使用Unity一段时间,对计算机科学/性能管理一无所知。
现在,我学习了一些C ++的经验,对IO /性能/等方面有一些关注,例如“计算机工程”。
然后我回到原来的Unity项目,该项目根本不关心那些事情,并且发现像我在C ++项目中所做的那样,有ref(或out)关键字用于按引用调用
在“业务级别”上使用C#的ref(用于按引用调用)是否很常见?(可能是具有Unity的游戏公司?)
答案 0 :(得分:3)
如果您来自C ++,那么您会想到需要传递引用,因为如果您不这样做,则整个对象都会被复制,并且很可能是 bad < sup>(tm)。
在C#中,类型是引用类型或值类型。引用类型通过引用自动传递。如果您传递一个类,则它可以是null
,因此它必须已经是对实际类实例的 reference (或在C ++术语中是“指针” ,因为c ++中的引用不能为null
)。
所有类都是引用类型。出于性能原因,您不需要ref
或out
。如果出于性能原因在ref
上使用out
或struct
,那应该是一个线索,它应该是class
。
因此,在C#中使用ref
或out
并不常见。它仅在不使用它无法获得预期结果的地方谨慎使用。这些关键字并非出于性能考虑。