引用类型

c# – 引用类型的堆栈条目包含什么?

关于参考和值类型如何在.NET中工作,我的内心更新.我知道引用类型的堆栈上的条目包含指向堆上的内存位置的指针.我似乎无法找到有关堆栈条目包含的其他内容的详细信息.所以,鉴于以下内容:在第一行代码之后,将存在包含空指针的堆栈上的条目.该条目是否还包含识别名称“customer”?我从根本上误解了什么吗?

C#可变性 – VS代码分析给我CA2104?似乎……很穷.我误会了吗?

在C#中,我想制作“智能”枚举,有点像Java中那样,其中有更多信息附加到枚举值而不仅仅是底层int.我发生了一个创建类的方案,如下面的简单示例所示:但是当我运行VisualStudio的“代码分析器”时,它会向我发出警告C2104,“不要声明只读可变引用类型”.我明白为什么你一般不想声明只读可变引用类型,但是…我的类不可变,是吗?

指定接口只能通过引用类型C#实现

如果我在C#中声明一个接口,有什么方法可以显式声明实现该接口的任何类型都是引用类型?解决方法如果你在一个接口下传递一些东西,那么即使你有一个实现该接口的值类型,如果转换为接口并且行为类似于引用类型,它将变成盒子.用作值类型时观察效果:现在看看当你把它投射到界面时会发生什么:因此,结构或类是否实现接口并不重要.如果转换为接口然后在接口下传递,那么它将表现为引用类型.编辑:那么如果这些是您的要求……

delphi – 为什么要使用类而不是记录,反之亦然?

一般来说,我们将创建一个记录,其结构用于存储从DB读取的数据,这些记录将存储在TList中。我们不使用如here概述的记录程序在回顾了一些例子后,我开始想知道我们是否会更好地使用课程而不是记录,但是我无法以任何一种方式找到强有力的指导。这样做的主要后果是当您写入a.Field:=42时会发生什么。在某些情况下,优选使用一种,在其他情况下,优选使用另一种。仅由数据组成的类型,并且没有与之相关联的方法很可能最好由值类型表示。

用引用类型的成员变量复制一个C类

我有一个类存储对其父项的引用,该引用在构造函数中传递.如果我尝试复制一个实例,我得到一个错误“错误C2582:’operator=’函数不可用”可能下降到引用是不可分配的.有没有办法解决这个问题,还是将变量改为指针而不是引用?

c – 为什么sizeof引用类型给你的sizeof的类型?

看到这些结果似乎错了:根据定义想要sizeof(T&)==sizeof的原因是什么?解决方法这种选择是有些武断的,试图充分证明任何一种选择都会导致圆形的形而上学论证.引用的意图是对象本身的(别名);根据这个推理,他们都有相同的大小(和地址),这就是语言规定的意义.抽象是泄漏的–有时引用有自己的存储,与对象分离,导致像您指出的异常.但是当我们需要处理一个“引用”作为对象的单独实体时,我们有指针.