【发布时间】:2010-04-09 20:47:29
【问题描述】:
这对你来说可能听起来很疯狂,但我需要一个 Nullable<T>(其中 T 是一个结构)来为其 Value 属性返回不同的类型。
规则是如果Nullable<T> 的属性HasValue 为真,Value 将始终返回不同指定类型的对象(然后返回自身)。
我可能想多了,但是下面的这个单元测试显示了我想要做什么。
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
}
}
【问题讨论】:
-
它肯定显示了你想做什么,但是......为什么?你的 Bob 怎么知道 Joe 返回什么?
-
我会在重载属性中写逻辑,或者不写。