gpt4 book ai didi

c# - 从类实例定义默认数组值

转载 作者:太空宇宙 更新时间:2023-11-03 22:07:20 24 4
gpt4 key购买 nike

我有以下 C# 类

public class smallclass 
{
public Vector3 var1 = new Vector3(1,2,3);
public string var2 = "defaultval";

public smallclass()
{
var1 = new Vector3(11,22,33);
var2 = "constructor";
}
}

我还有另一个c#类

public class bigclass  
{
public smallclass[] smallclasses;
}

然后在我的程序的其他地方,我增加了 smallclasses 的大小

smallclasses = new smallclass[3];

但我意识到这三个元素是空的......这是正确的行为吗?

请允许我澄清一下,每当我调整 smallclasses 数组的大小时,它的元素都会自动“构造”...我只是不知道这样的事情是否可以完成。

与我预期的不同,设置默认值无效。在我调整 smallclasses 数组的大小后,元素立即为空...

感谢任何建议。

谢谢。

最佳答案

smallclasses = new smallclass[3]; 没有调整数组的大小。它正在创建一个新数组。

您的数组声明 (public smallclass[] smallclasses;) 在类 bigclass 中创建了一个字段,其初始值为 null。语句 smallclasses = new smallclass[3]; 创建一个新数组对象并将对该对象的引用分配给字段 smallclasses

每当您创建一个引用类型(即类)的新数组时,该数组的所有元素都是空的。这是预期的行为。请参阅 C# 规范的第 1.8 节,其中部分说明:“new 运算符自动将数组的元素初始化为其默认值,例如,对于所有数字类型为零,对于所有引用类型为 null。”

关于c# - 从类实例定义默认数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7919094/

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