using System;

namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Creating object myObj...");
Class1 myObj = new Class1("My object"); // 实例化类 myObj 对象
Console.WriteLine("MyObj created");
for (int i = -1; i <= 1; i++)
{
try
{
Console.WriteLine("\nAttempting to assign {0} myObj.Val...",i);
myObj.Val = i;// 用户提供的属性
Console.WriteLine("Value {0} assigned to myObj.Val.", myObj.Val);
}
catch (Exception e)
{
Console.WriteLine("Exception {0} thrown.", e.GetType().FullName);
Console.WriteLine("Message: \n\"{0}\"", e.Message);
}
}
Console.WriteLine("\nOutputting myobj.Tostring()...");
Console.WriteLine(myObj.ToString());
Console.WriteLine("myObj.ToString () Output.");
Console.ReadKey();
}
}
}


/*
try ----- 包含产生异常的代码
catch --- 包含产生异常时要执行的代码
Finally-- 包含总会执行的代码,如内有产生异常则在try后运行
try块发生异常后,发生的事件依次是
---try块在发生异常的地方中断程序的执行
---如果有catch块,就检查该块是否匹配与已发生的异常类型。如果没有catch块,就执行Finally块(必须有)
---如果有catch块,但与已发生的异常类型不匹配,就检查是否有其他catch块
---如果有catch块匹配与已发生的异常类型,就执行它包含的代码,在执行Finally(如果有)
---如果catch块不匹配与已发生的异常类型,就执行Finally块(如果有)
*/
/*
try catch 检查抛出的异常
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication3
{
class Class1
{
public readonly string Name; //字段
private int intVal; //定义字段
public int Val //定义属性
{
get
{
return intVal; //get 块必须有个属性类型的返回值。可以直接返回该字段的值
}
set
{
if (value >= 0 && value <= 10) //value 用户提供的属性值
intVal = value;
else
throw (new ArgumentOutOfRangeException("Val", value, "Val must be assigned a value between 0 and 10."));// 抛出异常
}
}

public int MyInt
{
get
{
throw new System.NotImplementedException();
}

set
{
}
}

public override string ToString() //定义方法 override 关键字说明该方法从写了system.object 的虚拟方法ToString()
{
return "name: " + Name + "\nVal: " + Val;
}

public string shuchu(double paramX, double paramY) //定义方法
{
throw new System.NotImplementedException();
}

private Class1() :this("Default Name") // 不可见,只有用非标准实例函数实例化
{

}
public Class1(string newName) //构造函数
{
Name = newName;
intVal = 0;
}
}
}
/*
myObj.Val 提供属性值100 set 异常 throw 抛出异常 try 中断执行 检查 catch 块异常类型匹配 执行catch块
*/
/*
throw 抛出 system.ArgumentOutOfRangeException 类型的异常
catch 块中的代码会把该异常的信息输出到控制太上
*/
都是打上注释的+_+不=不难懂吧
原来写的~放上来~