using static System.Console;
using System;
public class Program {
public static void Main() {
DateTime dt = DateTime.Now;
DateTime? dtn = null;
WriteLine(dt);
WriteLine(dtn);
dtn = dt;
WriteLine(dtn);
dt = dtn ?? default(DateTime); //daria erro de compilação se não fizesse esta verificação
WriteLine(dtn);
dt = dtn.GetValueOrDefault(); //também pode usar isto
WriteLine(dtn);
dt = dtn.GetValueOrDefault(); //também pode usar isto
WriteLine(dtn);
if (dtn != null) WriteLine("tem valor");
if (dtn.HasValue) WriteLine("tem valor");
}
}
//https://pt.stackoverflow.com/q/125827/101
dXNpbmcgc3RhdGljIFN5c3RlbS5Db25zb2xlOwp1c2luZyBTeXN0ZW07CgkJCQkJCnB1YmxpYyBjbGFzcyBQcm9ncmFtIHsKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkgewoJCURhdGVUaW1lIGR0ID0gRGF0ZVRpbWUuTm93OwoJCURhdGVUaW1lPyBkdG4gPSBudWxsOwoJCVdyaXRlTGluZShkdCk7CgkJV3JpdGVMaW5lKGR0bik7CgkJZHRuID0gZHQ7CgkJV3JpdGVMaW5lKGR0bik7CgkJZHQgPSBkdG4gPz8gZGVmYXVsdChEYXRlVGltZSk7IC8vZGFyaWEgZXJybyBkZSBjb21waWxhw6fDo28gc2UgbsOjbyBmaXplc3NlIGVzdGEgdmVyaWZpY2HDp8OjbwoJCVdyaXRlTGluZShkdG4pOwoJCWR0ID0gZHRuLkdldFZhbHVlT3JEZWZhdWx0KCk7IC8vdGFtYsOpbSBwb2RlIHVzYXIgaXN0bwoJCVdyaXRlTGluZShkdG4pOwoJCWR0ID0gZHRuLkdldFZhbHVlT3JEZWZhdWx0KCk7IC8vdGFtYsOpbSBwb2RlIHVzYXIgaXN0bwoJCVdyaXRlTGluZShkdG4pOwoJCWlmIChkdG4gIT0gbnVsbCkgV3JpdGVMaW5lKCJ0ZW0gdmFsb3IiKTsKCQlpZiAoZHRuLkhhc1ZhbHVlKSBXcml0ZUxpbmUoInRlbSB2YWxvciIpOwoJfQp9CgovL2h0dHBzOi8vcHQuc3RhY2tvdmVyZmxvdy5jb20vcS8xMjU4MjcvMTAx