Это может показаться вам безумным, но мне нужно Nullable<T>
(где T - это структура), чтобы вернуть другой тип для его свойства Value.
Правила: если свойство Nullable<T>
HasValue имеет значение true, 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
}
}