可空类型Demo
using System;
namespace NullDemo
{
class Program
{
static void Main(string[] args)
{
//?语法糖
DateTime? date= null;
int? a = null;
//获取默认值
DateTime c = date.GetValueOrDefault();
int d = a.GetValueOrDefault();
//空合并操作符号??左边为null时取右边
DateTime dateNew = date ?? DateTime.Now;
int b = a ?? 123;
Console.WriteLine(dateNew);
Console.WriteLine(b);
Console.WriteLine("default DateTime"+c);//0001/1/1 0:00:00
Console.WriteLine("default int" + d);//0
Console.WriteLine("----------------------------");
date = DateTime.Now.AddDays(1);
a = 1;
//空合并操作符号??左边不为null时取左边
dateNew = date ?? DateTime.Now;
b = a ?? 123;
Console.WriteLine(dateNew);
Console.WriteLine(b);
Console.Read();
}
}
}
匿名方法Demo
using System;
namespace AnonymousDemo
{
class Program
{
delegate void ClosureDelegate();
private static ClosureDelegate CreateDelegateInstance()
{
int count = 1;//外部变量
//匿名方法
ClosureDelegate closureDelegate = delegate
{
Console.WriteLine(count);
count++;
};
//调用委托
closureDelegate();//此时输出1
return closureDelegate;
}
static void Main(string[] args)
{
ClosureDelegate test = CreateDelegateInstance();//此时输出1
test();//执行匿名方法,外部变量count是引用地址,相当于全局变量,输出2
Console.Read();
}
}
}