gpt4 book ai didi

c# - 构造函数中的 new 和成员声明中的 new 有什么区别?

转载 作者:太空狗 更新时间:2023-10-29 18:13:37 26 4
gpt4 key购买 nike

构造函数中的 new 和成员声明中的 new 有什么区别?

例子

public class PspGame {

private List<string>name = new List<string>();
private List<string>_value;

public PspGame() {
_value = new List<string>();
}
}

执行此操作的最佳方法是什么?是否存在任何性能问题?

最佳答案

它们几乎相同(性能和内存使用方面的任何差异都可以忽略不计)。唯一真正的区别是当您这样做时:

private List<string>name = new List<string>();

...无论使用什么构造函数创建对象的实例,赋值总是发生。当您在构造函数中进行赋值时,它只会在使用该特定构造函数时发生。

因此,如果您有多个构造函数,但您总是希望以完全相同的方式初始化 name,那么使用第一种形式比在每个构造函数中显式初始化它要短一些。

但是,作为一般规则,我更喜欢在构造函数实现中初始化字段,即使在某些情况下它确实会使代码更加冗长。

关于c# - 构造函数中的 new 和成员声明中的 new 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10576015/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com