【发布时间】:2011-01-06 00:18:41
【问题描述】:
首先,如果这个问题被问了一千次,我深表歉意。我阅读了我的 C# 书籍,在 Google 上搜索过,但似乎找不到我正在寻找的答案,或者我错过了重点。
我对整个装箱/拆箱问题感到非常困惑。假设我有不同类的字段,所有返回类型变量(例如'double'),我希望有一个变量指向这些字段中的任何一个。在普通的旧 C 中,我会执行以下操作:
double * newVar;
newVar = &oldVar;
newVar = &anotherVar;
...
我有一个计时器调用一个函数并传递引用变量的值:
ChartPlotData(*newVar);
之所以找指针,是因为newVar在运行时发生变化,链接到一个Event:
public void checkbox_Clicked(object sender ...)
if (sender == checkbox1) value = &object1.field1;
if (sender == checkbox2) value = &object2.field1;
如何在 C# 中做到这一点?
EDIT1:解释了引用的目的。
EDIT2:做了一些不正确的陈述,删除它们并缩短了问题。
【问题讨论】:
-
这样引用的目的是什么?
-
这句话是什么意思? “在 C# 中,我似乎可以做一个接口,但会要求所有字段都是属性并且命名相同。当其中一个属性名称不同或不是属性时会分开。”
-
我可以强制对象实现一个接口,但这意味着我需要创建一个可能没有意义的所有对象共有的属性。例如,“Car”类可能具有“NrWheels”属性,而“Boat”类可能具有“NrPropellers”属性。如果在运行时,我希望调用 Plot(NrRotatingDevices),我可能会创建一个接口“NrRotatingDevices”,但必须修改两个类以实现此接口或将 NrPropellers 和 NrWheels 重命名为 NrRotatingDevices。
-
改写问题并删除不正确的陈述。
标签: c# variables pointers boxing typed