问题标签 [struct]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 为什么我不能在 .NET 中为结构定义默认构造函数?
在 .NET 中,值类型 (C# struct
) 不能有没有参数的构造函数。根据这篇文章,这是 CLI 规范强制要求的。发生的情况是,对于每个值类型,都会创建一个默认构造函数(由编译器?),它将所有成员初始化为零(或null
)。
为什么不允许定义这样的默认构造函数?
一个微不足道的用途是有理数:
使用当前版本的 C#,默认的 Rational0/0
不是那么酷。
PS:默认参数会帮助 C# 4.0 解决这个问题,还是会调用 CLR 定义的默认构造函数?
Jon Skeet回答:
以您的示例为例,当有人这样做时,您希望发生什么:
它应该通过您的构造函数运行 1000 次吗?
当然应该,这就是我首先编写默认构造函数的原因。当未定义显式默认构造函数时,CLR 应使用默认归零构造函数;这样你只需为你使用的东西付费。然后,如果我想要一个包含 1000 个非默认Rational
s 的容器(并且想要优化掉 1000 个结构),我将使用 aList<Rational>
而不是数组。
在我看来,这个原因不足以阻止定义默认构造函数。
c# - 如何比较相同但不受约束的泛型类型的两个元素是否相等?
我有以下泛型类,编译器抱怨“ Operator '!=' cannot be applied to operands of type 'TValue' and 'TValue'
”(参见CS0019):
如果我限制TValue
到class
,我可以使用Object.Equals()
. 由于我对结构和类都需要这个,但如果我能避免这种情况,我会很高兴。
所以问题是,我如何比较两个相同但不受约束的泛型类型的元素是否相等?
c# - 如何在 C# 中的结构上强制使用工厂
我有 ac# 结构,我需要禁止在其上调用 no args 构造函数。
我这样做主要是为了强制所有成员的显式值,因为没有有效的默认值并且所有成员都必须具有有效值。
在 C++ 中这很容易,添加一个私有构造函数,但 C# 不允许这样做。
有没有办法防止上述情况?
我真的需要强制使用工厂,这样防止所有公共构造函数调用也能正常工作。
完全披露者:为了避免单声道依赖,c# 应用程序被自动翻译为 D ,其中new Struct()
产生了一个指针,这对我来说是个麻烦事。然而,尽管如此,这个问题还是相关的,所以请忽略它。
c - C 指针混淆
我想在内存中存储一个字符串并稍后读取:
尽管 B 行和 D 行显示相同的地址,但 C 行中的 printf 因分段错误而失败。我错过了什么?
任何帮助将不胜感激!
c - 结构和联合之间的区别
有什么好的例子可以说明 astruct
和 a之间的区别union
吗?基本上我知道它struct
使用了其成员的所有内存并union
使用了最大的成员内存空间。还有其他操作系统级别的差异吗?
c# - C# - 如何确保我的所有结构都已初始化?
我正在用 C# 编写一个应用程序,它将进行大量计算。一切都围绕着基本结构——价值。它基本上是双倍的,带有一些额外的参数(精度等)。它必须是一个结构,因为会创建太多的结构来提供堆分配。现在,我需要确保它们都已正确初始化。我不能声明默认的显式构造函数,尽管我提供了默认构造函数,它用 0 初始化所有内容,这在我的域中没有意义。
如果不使用参数调用我的构造函数,就无法拒绝创建实例......?
基本上我需要的是通过这个测试:
如果没有显式调用构造函数并且仍然访问结构,则抛出异常是可以的,但是检查所有时间将花费太多时间。
我现在几乎失去了希望,请帮助!
c - 如何使用指向 C 中结构指针的指针?
我想在双指针下更改结构的成员。你知不知道怎么?
示例代码
c - 用于记录 C 结构的程序?
如果您有一个被描述为 C 结构的二进制文件格式(或数据包格式),是否有任何程序可以解析该结构并将其转换为您的协议的整洁文档?
该结构当然会包含数组、其他结构等,这是描述格式所必需的。文档可能需要包括打包、字节顺序等内容。
c - 正确的内存分配
我有以下结构:
但我不知道如何为此分配内存。我试过:
为了为 101 个条目创建一个哈希表,但它不起作用!谁能帮我?我真的很感激!
python - 如何遍历和搜索 python 字典?
我有嵌套字典:
给定一个id
- 之一。
导航到正确字典的最简单方法是什么?ids
4130
4130-2-2
如果给定id
的是,4130-2-1
那么它应该到达字典key=key5
。
请不要使用 XML 方法。
编辑(1):嵌套在1
级别之间4
,但我在解析之前知道嵌套。
编辑(2):修复了代码。
编辑(3):再次修复了字符串值的代码ids
。请原谅造成的混乱。我希望这是最终的:)