作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我如何创建自己的原语?例如,范围为 1-10 的整数。
编辑:这来自 Rosetta Code 上的一项任务。
Defining Primitive Data Types: Demonstrate how to define a type that behaves like an integer but has a lowest valid value of 1 and a highest valid value of 10.
最佳答案
好吧,让我们来看看。首先,CLR 中内置了一些数据类型。这些不能修改或添加新的,因为它们是标准的一部分。您可以找到一个列表 here或 here .那是 C#,但该列表也应该存在于 VB.net 的某处,并且看起来应该相同,因为底层 CLR 是相同的。此外,该列表不完整,因为缺少浮点数和字符,但您明白了。
但是,有一些结构封装了这些数据类型并添加了一些额外的功能。例如, System.Int32 只是一个普通的标准结构,不涉及魔法。随意在 Reflector 中查看它,它在 mscorlib 中:
[Serializable, StructLayout(LayoutKind.Sequential), ComVisible(true)]
public struct Int32 : IComparable, IFormattable, IConvertible, IComparable<int>, IEquatable<int>
Int16
或
Byte
.如果您查看它们,您会发现它们看起来都有些相似,但它们基于一种内置数据类型。
System.Byte
)并不能完全起作用,因为有些成员是内部的(即
NumberFormatInfo.ValidateParseStyleInteger
),但是
Reflector可以在这里提供帮助。
关于.net - 如何在 .NET 中创建自己的原始数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/393061/
我是一名优秀的程序员,十分优秀!