0

我正在开发一些应该用于特殊类型实验的软件。

使用以下方法进行实验:

1)“芯片”(基本上是已知尺寸的XY网格)。2) 每个芯片都包含“电极”,通过芯片上的 X 和 Y 坐标以及唯一的 ID 来标识。每个电极还可以容纳或不容纳样品,由一个简单的布尔值表示(它是一个生物传感芯片)。

我有在 C# 中表示此硬件的对象。

我现在需要在实验中使用硬件;

1)我有一个“实验”,它公开了一个持有“ExperimentStep”对象的 IEnumerable。2)“ExperimentStep”包含一个名称,以及涉及的“电极”的有限列表等。

一些实验步骤可以同时运行并且可以改变电极的“HasSample”属性。因此,当我执行“ExperimentStep”时,最好随时了解初始“HasSample”属性是什么。

这就是我的问题所在;

如果我只是将“Electrode”对象传递给我的“ExpermentStep”,它们可能会通过 Value... 是否可以创建一个 IEnumerable 来保存对唯一电极的引用,以便每次我想运行“ExperimentStep”该步骤中使用的“电极”列表包含“HasSample”的最新值?我应该为此使用指针吗?根据我对 C++ 的有限知识,我希望这在该语言中是微不足道的(因为您大部分时间都使用指针)。但是在 C# 中我真的一无所知(而且我经验不足)。

4

2 回答 2

4

我怀疑您不了解引用类型和值类型之间的区别,以及按值传递在 C# 中的真正含义。

假设Electrode是一个类,您可以修改它的实例的属性,并且这些更改将通过对同一对象的任何引用可见。

强烈建议您在尝试开发大量生产代码之前确保您对 .NET 类型系统有深入的了解。不了解正在发生的事情的后果可能是灾难性的。

我关于这些主题的几篇文章:

...但我建议您也获得一本很好的 C# 入门书籍。

于 2009-09-08T10:07:01.153 回答
4

c# 中,类是引用类型。这意味着,如果您创建一个类的实例列表,然后还将这些实例添加到另一个列表中,那么它就是相同的项目。每个列表都将包含一个参考。因此,是的,您可以使用 IEnumberable 来增加项目。

于 2009-09-08T10:08:04.273 回答