ava*_*ime 3 .net c# value-type
在查看Int32的源代码,同时做了一些研究,为什么我的DataContractSerializer不会序列化我的结构但是当使用int它工作正常时,我遇到了一些奇怪的代码
public struct Int32 : ...
{
internal int m_value;
public const int MaxValue = 0x7fffffff;
Run Code Online (Sandbox Code Playgroud)
如果Int32和int是别名,为什么在Int32内部声明int?
int
与Int32
此问题无关.显示字段int
只是因为您用来查看它的工具在显示它们时用别名替换这些类型.如果你看一下使用较低级别的工具,你会发现它不知道int
,只有Int32
.
问题是Int32
struct包含一个Int32
字段.
"
int
站在什么地方?" "你很聪明,年轻人,非常聪明,"老太太说."但它int
一直在下降!"
这个问题的解决方案很神奇.运行时知道它Int32
是什么,并给它特殊的处理,避免无限递归.您不能编写将自身包含为字段的自定义结构.Int32
是内置类型,没有普通结构.为了一致性,它只是作为结构出现.
归档时间: |
|
查看次数: |
462 次 |
最近记录: |