这可能听起来很疯狂,但我需要一个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