首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新IEnumerable<>中对象的属性

更新IEnumerable<>中对象的属性
EN

Stack Overflow用户
提问于 2009-09-08 10:03:36
回答 2查看 3.1K关注 0票数 0

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

这些实验使用以下方法执行:

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

我有用C#表示这个硬件的对象。

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

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

某些实验步骤可以同时进行,并可能改变电极的"HasSample“性质。因此,当我执行"ExperimentStep“时,最好随时知道初始的"HasSample”属性是什么。

这是我的问题所在;

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-09-08 10:08:04

c# a class is reference type中。这意味着,如果您创建了一个类的实例列表,然后又将这些实例添加到另一个列表中,那么它就是相同的项。每个列表将包含一个引用。因此,为了达到这个效果,是的,您可以使用IEnumberable来设置这些项目。

票数 4
EN

Stack Overflow用户

发布于 2009-09-08 10:07:01

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

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

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

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

  • Reference types and value types in .NET
  • Parameter passing in C#

..。但我建议你也买一本好的入门C#书。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1393101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档