比如我有C#4.0:如何找出是否類型共variantly等於
interface ICommand {}
class MovePiece : ICommand {}
class Successful<CMD> where CMD : ICommand {}
,我想以下幾點:
CovariantlyEqual(
typeof(Successful<ICommand>),
typeof(Successful<MovePiece>))
.ShouldEqualTrue()
更新 埃裏克問之下,爲什麼我想測試這樣的事情。很公平。我認爲有很多場合容易檢查這種「平等」是有用的。以一個簡單的事件聚合器爲例 - 你希望能夠告訴它你有興趣訂閱所有成功的命令。與此同時,另一個組件可能只對一個成功的MovePiece事件感興趣。
我想我錯了,但我認爲這是co和contra的差異。也許平等在這裏是一個錯誤的術語,但顯然在類型定義Successful<MovePiece>
和Successful<ICommmand>
之間存在着某種關係,在語言中是否沒有任何內容容易公開它?
什麼?這怎麼可能得到一個投票呢? – 2010-05-28 03:24:22
我其實是第一個問題......但是我可以看到有人可能會把它解釋爲'[plzsendtehcodez]',因爲你沒有解釋你到目前爲止所做的嘗試。也許是這樣嗎?但我個人認爲,你提出這個問題的方式並不能證明你自己的方法。 – 2010-05-28 03:27:54
你能解釋爲什麼你認爲這兩件事「相等」?他們不平等。它們也不兼容。你能提供一個你稱之爲「協變平等」的關係的精確定義嗎?它實際上是一個等價關係嗎?如果它不是一個等價關係,那麼你爲什麼稱它爲「平等」? – 2010-05-28 04:45:19