1

重複の可能性:
C# の「T」は何を意味しますか?
<T> は C# で何を意味しますか

質問について調べてみましたが、その構文がまったくわからないため、うまく検索できませんでした。さて、簡単な説明の後、私の質問は次のとおりです。

パーティクルエフェクトライブラリを探していたときに、これに会いました:

[Serializable]
public class DPSF<Particle, Vertex> : IDPSFParticleSystem
  where Particle : global::DPSF.DPSFParticle, new()
  where Vertex : struct, global::DPSF.IDPSFParticleVertex
{
  // constructors, methods, parameters here ...
}

この表記はブランケット (<...>) で何を意味し、どのように使用されますか?

4

2 に答える 2

2

これらは、クラス定義に渡すことができるジェネリック型です。

簡単な例:

public class Test<T>
{
   public T yourVariable;  
}

Test<int> intClass = new Test();
Test<string> stringClass = new Test();

intClass.yourVariable // would be of type int
stringClass.yourVariable // would be of type string

ここで、Tは必要な型です(つまり、別のクラス、文字列、整数、その​​他の一般的なもの)

ここで、Particle:global :: DPSF.DPSFParticle-は、ParticleオブジェクトがDPSF.DPSFParticleから継承する必要があることを意味します

于 2012-04-20T14:27:53.520 に答える
1

これは、DPSFクラスがジェネリッククラスであることを意味します。<>の間のパーティクルと頂点はタイプパラメータです。これは、DPSFがパラメーターとして2つのタイプを取得し、ジェネリッククラスとして機能することを意味します。

ここを見てください:MSDN:ジェネリック

EDIT Whereキーワードを使用すると、タイプパラメータを制限できます。ここで、classは、このジェネリッククラスが機能するためには、パラメーターがクラスでなければならないことを意味します。

于 2012-04-20T14:27:28.593 に答える