国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

Csharp+Asp.net系列教程(六)

2024-07-10 12:57:20
字體:
來源:轉載
供稿:網友


收集最實用的網頁特效代碼!

本教程參考c#和asp.net程序設計教程撰寫,有什么不足之處請大家指出,或在老貓的理想blog留言。

好些天不寫了。今天事情較少,有幾個網友總是問,就又寫了點東西。可能疏漏比較多,希望大家幫忙指正

預處理指令:與c++不同,c#沒有獨立的預處理器。在c#中,預處理指令并不是編譯器開始編譯代碼之前的一個單獨的處理步驟,而是作為詞法分析的一部分來執行的。預處理指令都以#號開頭并位于行首。
#define指令用于定義符合,他的作用域是該定義所在的整個文件,符號定義必須放在所有其他語句的前面,或者說在所有“實代碼(real code)”之前。(比如:"using system"就是實代碼。)
想取消某個符號的定義,則要用到#undef指令。
條件編譯指令有4個:#if、#elif、#else、#endif,他們用來有條件地將部分程序代碼包括進來或排除在外。條件編譯指令和if語句有類似的作用。也可以在條件編譯指令中用邏輯與(&&)、邏輯或(||)、等于(==)、不等于(!=)等操作符。
eg:
#define mf1
#define mf2
using system;
public class mikecat
{
public static void main()
{
#if (mf1&&!mf2)
console.writeline("mf1被定義");
#elif(!mf1&&mf2)
console.writeline("mf2被定義");
#elif(mf1&&mf2)
console.writeline("mf1和mf2被定義");
#else
console.writeline("mf1和mf2沒被定義");
#endif
}
}//運行結果:mf1和mf2被定義
#error和#warning指令用于發出編譯錯誤和警告。
eg:
#define mf1
#define mf2
using system;
public class mikecat
{
public static void main()
{
#if mf1
#warning 歡迎來到老貓的理想!
#endif
#if mf2
#error 老貓的理想blog出錯
#endif
}
}//運行結果:test.cs(9,17): warning cs1030: #warning:“歡迎來到老貓的理想!”
//test.cs(12,15): error cs1029: #error:“老貓的理想blog出錯”
#line指令用于修改編譯器行號及文件名
eg:
using system;
public class mikecat
{
public static void main()
{
#line 66 "mfblog.cs" //將編譯行號設為66并將文件名改名為mfblog.cs
intt i=1;
console.writeline("i的值是{0}",i);
}
}//運行結果:mfblog.cs(66,6): error cs0246: 找不到類型或命名空間名稱“intt”(是否缺少 using指令或程序集引用?)
//mfblog.cs(67,34): error cs0103: 名稱“i”在類或命名空間“mikecat”中不存在

異常處理:在c#中,引發異常有兩種狀況,第一種:在程序中使用throw語句,立即無條件引發一個異常。第二種情況是c#語句或表達式在執行過程中激發了某個異常的條件,從而使得操作無法正常結束,從而引發異常。
在c#中,異常是由try語句來處理。try語句提供了一種機制來捕捉程序過程中引發的異常。try有三種可能的結構,即:try-catch|try-finally|try-catch-finally
try-catch結構:try子句后跟一個或多個catch子句。如果執行try子句中的語句時引發了異常,那么程序將按順序查找第一個能處理該異常的catch子句,并將控制權轉移到catch子句執行。既沒定義異常類型,也沒定義異常變量的catch子句稱為普通catch子句。一個try子句最多只能有一個普通catch子句,而且該子句必須排在其他catch子句的后面。
eg:
using system;
class mikecat
{
static void mf1(string s)
{
if(s==null)
throw(new argumentnullexception());//引發異常
}
static void mf2()
{
try
{
string s=null;
mf1(s);//調用mf()方法。由于s=null,因此會引發異常
}
catch(argumentnullexception ex)
{
console.writeline("mf2()方法中的異常:{0}",ex.message);
throw;//再次引發
}
}
public static void main()
{
try
{
mf2();//調用mf2()方法
}
catch(argumentnullexception ex)
{
console.writeline("main()方法中的異常{0}",e.message);
}
}
}//mf2()方法中的異常:值不能為空。
//main()方法中的異常值不能為空。
try-finally結構:即try子句后跟一個finally子句。不管try子句是如何退出的(無論正常退出,還是引發異常,甚至執行goto|break|continue|return語句退出),程序的控制權總是會被轉移到finally子句執行。
eg:
using system;
public class mikecat
{
public static void main()
{
try
{
console.writeline("執行try子句");
//goto leave;//跳轉到leave標簽
return;
}
finally
{
console.writeline("執行finally子句");
}
leave:
console.writeline("執行leave標簽!");
}
}//執行try子句執行finally子句
try-catch-finally:即try子句后跟一個或多個catch子句及一個finally子句
eg:
using system;
class mikecat
{
static void mf(string s)
{
if(s==null)
throw(new argumentnullexception());//引發異常
}
public static void main()
{
try
{
string s=null;
mf(s);//調用mf()方法,由于s=null,因此會引發異常
}
catch(argumentnullexception ex)
{
console.writeline("異常發生:{0}",ex.message);
}
finally
{
console.writeline("執行finally子句");
}
}
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 锡林郭勒盟| 青神县| 东城区| 德江县| 新邵县| 江源县| 昌平区| 襄樊市| 湟源县| 秀山| 浮梁县| 旺苍县| 南投市| 托里县| 台南县| 错那县| 南川市| 辉南县| 措勤县| 松阳县| 策勒县| 安福县| 焉耆| 来凤县| 葫芦岛市| 镇康县| 平山县| 泰来县| 汕尾市| 会宁县| 高唐县| 法库县| 克山县| 镇坪县| 湖南省| 长武县| 长武县| 石林| 凤城市| 安国市| 包头市|