//客户端
class Program
{
//学习属性存取器,有效性检查是在SET中
//属性与方法是平行关系,即属性不能在办法中定义,但可以在方法内部调用已经定义好的属性
private int month;//月份
public int Month
{
get
{
return month;
}
set
{
if (month < 1 || month > 12)
{
throw new ArgumentOutOfRangeException(value.ToString());//如何赋值不合理,抛出异常
}
month = value;
}
}
static void Main(string[] args)
{
//调用定义好的属性Month
Program p = new Program();
try
{
p.Month = 13;//因为在Month属性定义中有throw异常的代码,所以要用try来捕获,这样就会捕获指定的代码,一旦代码出错便于分析TRACE
}
//catch后跟的异常类型必须是month属性定义中throw抛出的异常的父类或至少和它的类一样
catch (Exception e) //发现用了throw抛出异常必须要捕获异常用catch不然编译不通过哈 Exception
{
Console.WriteLine(e.Message);
throw new ArgumentNullException();
throw e;//throw加指定异常会抛出具体的异常
throw;//仅一个throw会怎么样呢 ,仅一个throw会把异常重新抛出
}
try
{
p.Month = 11;
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
Console.ReadKey();
}
//定义枚举类型
public enum testenum:int //枚举默认类型是int
{
first=1,
second=2,
third=3
}