public void DefaultValues()
{
var main = new CodeEntryPointMethod();
foreach (Type t in new[] { typeof(int), typeof(object), typeof(DateTime), typeof(string) })
{
main.Statements.Add(
new CodeMethodInvokeExpression(
new CodeMethodReferenceExpression(new CodeTypeReferenceExpression(typeof(Console)), "WriteLine"),
new CodeExpression[] { new CodeDefaultValueExpression(new CodeTypeReference(t)) }));
}
AssertEqual(main,
"public static void Main() { " +
" System.Console.WriteLine(default(int)); " +
" System.Console.WriteLine(default(object)); " +
" System.Console.WriteLine(default(System.DateTime)); " +
" System.Console.WriteLine(default(string)); " +
"}");
AssertEqual(
new CodeDefaultValueExpression(new CodeTypeReference(typeof(Guid))),
"default(System.Guid)");
AssertEqual(
new CodeDefaultValueExpression(new CodeTypeReference("Some.Type.Name")),
"default(Some.Type.Name)");
}