這可能聽起來很瘋狂,但我需要一個Nullable<T>
(其中T是一個結構體)爲其Value屬性返回一個不同的類型。是否有可能重寫可空結構的值,以返回一個不同的類型?
規則如果Nullable<T>
的屬性HasValue爲true,則值將始終返回不同指定類型的對象(然後自身)。
我可能在思考這一點,但波紋管樣的這個單元測試顯示了我想做的事情。
public struct Bob
{
...
}
[TestClass]
public class BobTest
{
[TestMethod]
public void Test_Nullable_Bob_Returns_Joe()
{
Joe joe = null;
Bob? bob;
var bobHasValue = bob.HasValue; // returns if Bob is null
if(bobHasValue)
joe = bob.Value; //Bob returns a Joe
}
}
它絕對顯示你想要做什麼,但是...爲什麼?那麼你的鮑勃如何知道喬要回歸什麼? – 2010-04-09 20:53:29
我會在重載屬性中寫入邏輯,或者不是。 – Andrew 2010-04-12 14:29:15