一、try-catch
簡單用法——在try塊中獲取並使用資源,在catch塊中處理異常情況,並在finally塊中釋放資源
try
{
//有可能出現錯誤的代碼
}
catch
{
//如果try中的代碼出現異常,則進去catch中
}
finally
{
//最後執行的代碼
}
Console.WriteLine("輸入數字");
try//try中寫可能會出現異常的語句
{
int num = Convert.ToInt32(Console.ReadLine());
}
catch (Exception ex)//如果上面的代碼不出現異常,就不走catch中的代碼
{
Console.WriteLine(ex.Message);
}
Console.ReadKey();
int[] nums = {3,4,5};
try
{
nums[3] = 90;//超範圍了
}
catch (Exception ex)
{
//Console.WriteLine(ex.Message);
throw;//將問題拋出
}
finally
{
Console.WriteLine("無論是否出現異常都會走這裏");
}
Console.ReadKey();
☺
二、方法
有了方法之後,寫代碼就簡單了
1、方法的語法
[訪問修飾符] static 返回值 方法名 ([參數列表])
{
方法體
}
2、實例
無方法的前提下:
//早上
//洗碗,刷鍋,切菜,放油,炒菜,煮飯,喝杯小酒
Console.WriteLine("洗碗,刷鍋,切菜,放油,炒菜,煮飯,喝杯小酒");
//中午
//洗碗,刷鍋,切菜,放油,炒菜,煮飯,喝杯小酒
Console.WriteLine("洗碗,刷鍋,切菜,放油,炒菜,煮飯,喝杯小酒");
//晚上了
//洗碗,刷鍋,切菜,放油,炒菜,煮飯,喝杯小酒
Console.WriteLine("洗碗,刷鍋,切菜,放油,炒菜,煮飯,喝杯小酒");
//半夜
//洗碗,刷鍋,切菜,放油,炒菜,煮飯,喝杯小酒
Console.WriteLine("洗碗,刷鍋,切菜,放油,炒菜,煮飯,喝杯小酒");
有方法之後:
一個電話即可——打給飯店
static void Main(string[] arge)
{
//在本類中調這個方法,可以直接—— 方法名(); 就可以使用
Show();
Console.ReadKey();
}
public static void Show()//此方法無返回值,無參數
//如果方法前加static,就叫靜態方法
{
Console.WriteLine("洗碗,刷鍋,切菜,放油,炒菜,煮飯,喝杯小酒");
}
3、方法深入
①最簡單的方法無參數,無返回值
static void Main(string[] args)
{
Show(); //直接調方法
Console.ReadKey();
}
public static void Show()
{
Console.WriteLine("請輸入第一個數");
int num1 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("請輸入第二個數");
int num2 = Convert.ToInt32(Console.ReadLine());
int number = num1 > num2 ? num1 : num2;
Console.WriteLine("最大值爲{0}", number);
}
改進後
static void Main(string[] args)
{
Console.WriteLine("請輸入第一個數");
int number1 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("請輸入第二個數");
int number2 = Convert.ToInt32(Console.ReadLine());
int max = Show(number1, number2);
Console.WriteLine("最大值就是{0},我自己寫都行",max);
Console.ReadKey();
}
public static int Show(int num1,int num2)
{
int number = num1 > num2 ? num1 : num2;
return number;
}
再次改進方法裏的代碼變成:
public static int Show(int num1,int num2)
{
return num1 > num2 ? num1 : num2;
}
②有無參數就在寫完方法後,先打半個 括號,看“半張紙”中的方法括號裏有無參數,來進行判斷
有無返回值就看“半張紙”的左上角是否有void,如果沒有void,說明有返回值
返回值類型也看“半張紙”中的提示
//有返回值,爲int類型;有參數,爲string類型
int num = Convert.ToInt32("3");
//有返回值,爲bool類型,有參數,而且是兩個,一個是string類型 一個是 out + 變量名
bool result = int.TryParse("3", out num);
//沒有參數,有返回值,爲string類型
string str = Console.ReadLine();
③命名規則:方法名開頭大寫,參數名開頭小寫,參數名、變量名要有意義
方法的調用,對於靜態方法,調用有兩種方式
如果在同一個類中,直接寫名字調用就行了
或者類名.方法名();
return 可以立即退出方法
4、方法練習
static void Main(string[] args)
{
int[] nums = {23, 45, 67, 98, 12};
}
public static void AddArray(int[]numbers)
{
int sum = 0;
int max = int.MinValue;
int min = int.MaxValue;
for(int i = 0; i < numbers.Length; i++)
{
sum += numbers[i];
if(numbers[i]>max)
{
max = numbers[i];
}
if(numbers[i]<min)
{
min = numbers[i];
}
}
Console.WriteLine("最大值爲{0}",max);
Console.WriteLine("最小值爲{0}",min);
Console.WriteLine("和爲{0}",sum);
}
☺
三、局部變量
//public static int _numint = 90;//全局變量
static void Main(string[] args)
{
int number = 90;
Test(number);//通過傳參數,可以把這個方法中的值,傳到另一個方法中
//傳參 返回值
Console.ReadKey();
}
public static void Test(int num)
{
num = num + 3;
Console.WriteLine(num);
}
☺
四、通過返回值傳遞變量的值
static void Main9(string[] args)
{
//寫一個方法,判斷一個年份是否是閏年
Console.WriteLine("請輸入年份");
string str = Console.ReadLine(); //用來接收 年份
int yearInt = Convert.ToInt32(str);//字符串類型 轉 int類型
bool result = Isyear(yearInt);
if(result)
{
Console.WriteLine("閏年");
}
else
{
Console.WriteLine("平年");
}
Console.ReadKey();
}
public static bool Isyear(int year)
{
if(year%400==0||year%4==0&&year%100!=0) //判斷閏年的條件
{
return true;
}
else
{
return false;
}
}
改進——有個方法,傳過去一個 字符串 返回的是一個數字
static void Main9(string[] args)
{
//寫一個方法,判斷一個年份是否是閏年
Console.WriteLine("請輸入年份");
//string str = Console.ReadLine();
//int yearInt = Convert.ToInt32(str);
int yearInt = OutPutNumber(Console.ReadLine());//調用新的方法
bool result = Isyear(yearInt);
if(result)
{
Console.WriteLine("閏年");
}
else
{
Console.WriteLine("平年");
}
Console.ReadKey();
}
public static bool Isyear(int year)
{
if(year%400==0||year%4==0&&year%100!=0)
{
return true;
}
else
{
return false;
}
}
public static int OutPutNumber(string strNumber) //新的方法
{
while(true)
{
try
{
int number = int.Parse(strNumber);
return number;
}
catch(Exception)
{
Console.WriteLine("輸入錯誤,請重新輸入");
strNumber = Console.ReadLine();
}
}
Console.WriteLine();
}