2012-04-20 60 views
1

可能重複:
What does 「T」 mean in C#?
What does <T> denote in C#與<TypeParameter> C#類語法

我已經搜索有關的問題,而是因爲我沒有關於語法的想法,我找不到足夠好的。好了,簡短的解釋後,我的問題是:

雖然我一直在尋找一個粒子特效庫我滿足這個:

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

是什麼符號在毯子的意思(< ...>),以及如何它用於?

+3

http://msdn.microsoft.com/en-us/library/ms379564%28VS .80%29.aspx – 2012-04-20 14:24:12

+0

可能重複[什麼是「T」在C#中是什麼意思?](http://stackoverflow.com/questions/400314/what-does-t-mean-in-c)和[什麼在C#中表示](http://stackoverflow.com/questions/9857180/what-does-t-denote-in-c-sharp) – 2012-04-20 14:25:49

+0

謝謝!我正在閱讀帖子,我很好奇爲什麼會有「粒子:......」這是一個限制嗎?我知道T意味着什麼,但我從來沒有見過它與課堂使用!我知道在函數中使用T,但是我仍然想要通過類 – icaptan 2012-04-20 14:26:41

回答

1

這意味着DPSF類是一個通用類。粒子和頂點之間的<>是類型參數。這意味着DPSF獲取兩種類型的參數並作爲泛型類。

看看這裏:MSDN: Generics

編輯 哪裏關鍵字可以限制類型參數。其中:class意味着參數必須是一個類才能使此泛型類工作。

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是你想要的類型(即另一個類,一個字符串,整數什麼通用)

其中粒子:全球:: DPSF.DPSFParticle - 意味着該粒子對象必須從DPSF.DPSFParticle繼承

+0

以及哪裏clouse?這是一個限制嗎? – icaptan 2012-04-20 14:29:25

+0

必須從DPSF.DPSFParticle繼承。 – 2012-04-20 14:30:13

+0

謝謝,我很好的理解了答案!非常感謝你! – icaptan 2012-04-20 14:31:12