0

私は、特別な種類の実験に使用する必要のあるソフトウェアに取り組んでいます。

実験は以下を使用して実行されます。

1) 「チップ」(基本的には既知の寸法の XY グリッド)。2) 各チップには「電極」が含まれており、チップ上の X 座標と Y 座標、および一意の ID によって識別されます。各電極はサンプルを保持することも、保持しないこともできます。これは単純な bool で示されます (これはバイオセンシング チップです)。

このハードウェアを C# で表すオブジェクトがあります。

実験でハードウェアを使用する必要があります。

1) 「ExperimentStep」オブジェクトを保持する IEnumerable を公開する「実験」があります。2) "ExperimentStep" には、名前と、特に関係する "電極" の限定されたリストが保持されます。

一部の実験ステップは同時に実行でき、電極の「HasSample」プロパティを変更できます。したがって、"ExperimentStep" を実行するときに、最初の "HasSample" プロパティがどのようなものかを常に知っておくとよい場合があります。

これが私の問題です。

「ExperimentStep」に「Electrode」オブジェクトを渡すだけの場合、それらはおそらく値によって渡されます...「ExperimentStep」を実行するたびに、一意の電極への参照を保持する IEnumerable を作成することは可能ですか?そのステップで使用される「電極」のリストは、「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 に答える