Presentation is loading. Please wait.

Presentation is loading. Please wait.

6 C#語言與Razor語法 6-1 C#語言與Razor語法 6-2 C#語言的基本撰寫規格 6-3 變數與資料型態 6-4 運算子

Similar presentations


Presentation on theme: "6 C#語言與Razor語法 6-1 C#語言與Razor語法 6-2 C#語言的基本撰寫規格 6-3 變數與資料型態 6-4 運算子"— Presentation transcript:

1

2 6 C#語言與Razor語法 6-1 C#語言與Razor語法 6-2 C#語言的基本撰寫規格 6-3 變數與資料型態 6-4 運算子
6-5 流程控制 6-6 陣列 6-7 函數 6-8 物件的使用與型態轉換

3 6-1 C#語言與Razor語法 6-1-1 認識C#語言與Razor語法 6-1-2 Razor語法、伺服端程式碼與ASP.NET 6-1-3 Razor的基本語法

4 6-1-1 認識C#語言與Razor語法-C#語言
C#語言(其發音是See-Sharp)是由微軟公司Anders Hejlsberg領導的小組開發的程式語言,Anders Hejlsberg擁有豐富的程式語言和平台的開發經驗,曾經開發著名的Visual J++、Borland Delphi和Turbo Pascal等。 C#語言是在2000年6月正式推出的一種相當新的程式語言,目前的最新版本是C# 5.0版,C#是一種簡單、現代化和物件導向的程式語言,屬於微軟.NET Framework平台的程式語言,支援結構化、物件基礎和物件導向程式設計。事實上,C#語言的程序式和物件導向語法都是源於C++語言,再參考其他多種程式語言的語法,最著名的就是Delphi和Java。

5 6-1-1 認識C#語言與Razor語法- Razor語法
Razor語法可以讓網頁程式開發者在靜態HTML網頁的標籤中內嵌伺服端程式碼,例如:Visual Basic或C#程式碼,其原始設計的目的是希望開發者能夠更流暢的進行程式碼撰寫,並且讓我們快速整合伺服端程式碼來建立動態網頁內容,和開發資料驅動的Web網站。 以ASP.NET技術來說,Web Forms和MVC都是將HTML標籤和伺服端程式碼分割成不同的程式檔案,WebMatrix使用的Web Pages開發模型,則是將伺服端程式碼內嵌於HTML標籤中,可以讓學生、初學者或傳統ASP和PHP技術的網頁開發者更容易進入或轉換至.NET平台的ASP.NET伺服端網頁技術。

6 6-1-2 Razor語法、伺服端程式碼與ASP.NET-圖例
Razor語法、ASP.NET與.NET Framework之間的關係,如下圖所示:

7 6-1-2 Razor語法、伺服端程式碼與ASP.NET-網頁內容
現在,我們回到Razor語法的ASP.NET程式碼,因為Web網頁擁有Razor語法,所以,網頁內容可以分為兩種,如下所示: 客戶端內容(Client Content):客戶端內容包含HTML標籤、CSS樣式碼、客戶端腳本程式碼和純文字內容,其中客戶端腳本程式碼可以是JavaScript或相關函數庫的程式碼,例如:jQuery。 伺服端程式碼(Server Code):伺服端程式碼是使用Razor語法,將Visual Basic或C#程式碼內嵌入客戶端內容。

8 6-1-3 Razor的基本語法-說明 Razor語法的ASP.NET程式,其檔案的副檔名為: .cshtml(C#語言)或.vbhtml(Visual Basic語言) 。

9 Razor語法是使用「@{」和「}」包圍C#程式碼(在@和{之間不能有空白字元),如下所示:
@{ var amount = 100; } @{ var msg = "第1個ASP.NET程式"; }

10 Razor語法也可以使用「@{」和「}」包圍多行C#程式碼,如下所示:
var amount = 100; var msg = "第1個ASP.NET程式"; }

11 Razor語法可以使用@字元,將C#運算式直接內嵌於HTML標籤中,如下所示:
上述<p>標籤中內嵌有Razor語法的運算式,可以顯示變數amount和msg的值。

12 6-1-3 Razor的基本語法- 混用HTML標籤與伺服端程式碼
@{ var name = "Joe"; <div>歡迎 }

13 6-2 C#語言的基本撰寫規格-說明 程式碼在撰寫時如果使用一致規則,在程式維護上將有一定助益,撰寫規格的目的是為了建立一致的程式風格,以便進行小組(Teamwork)的程式開發。

14 6-2 C#語言的基本撰寫規格-命名規則 程式設計者在替元素命名時,需要遵循程式語言的語法。而且元素命名十分重要,因為一個好名稱如同程式註解,可以讓程式更容易了解。C#語言的基本命名原則,如下所示: 名稱不可以使用C#語言的關鍵字或系統的物件名稱。 必須是英文字母或底線「_」開頭,如果以底線開頭,至少需要一個英文字母或數字。 在名稱中間不能有句點「.」或空白,只能是英文字母、數字和底線。 區分英文大小寫,hello、Hello和HELLO分別代表不同的名稱。 在宣告的有效範圍內需唯一,有效範圍請參閱第6-7-2節的函數。

15 C#語言一些元素名稱的範例,如下表所示:
說明 Abc、foot_123、size1、_123、 _abc 合法名稱 _、123abc、check#time、double 不合法名稱,名稱不能只有底線、使用數字開頭、不合法字元「#」和關鍵字

16 6-2 C#語言的基本撰寫規格- C#語言的註解
程式註解(Comments)是程式十分重要的部分,良好註解不但能夠容易了解程式目的,在維護上也可以提供更多的資訊。C#程式註解是以「//」符號開始的列,或程式列之後在此符號後的文字內容,如下所示: // 宣告變數 var amount = 100; // 宣告變數 程式註解也可以是使用「/*」和「*/」符號括起的文字內容,如下所示: /* 顯示不同 的歡迎訊息 */

17 6-2 C#語言的基本撰寫規格- Razor語法的註解
@{ @* 變數的宣告 var size1,size2; }

18 6-2 C#語言的基本撰寫規格- 對於太長的程式碼
C#語言的程式碼列如果太長,基於程式編排的需求,太長程式碼並不容易閱讀,我們可以將它分成兩列來編排。因為C#語言屬於自由格式編排的語言,如果程式碼需要分成兩列,直接分割即可,如下所示: var msg = "大家好!這是比較長的程式碼, " + "所以需要分為兩列."; 上述程式碼有2個字串,所以使用字串連接運算字「+」連接2個字串(此運算子的說明請參閱本章後)。不過,我們不能在程式碼直接分割字串,如下所示: var msg = "大家好!這是比較長的程式碼, 所以需要分為兩列.";

19 6-2 C#語言的基本撰寫規格- 額外的空白字元
在程式敘述加入額外空白字元,並不會影響程式碼的執行,如下所示: @{ var size = ; }

20 6-2 C#語言的基本撰寫規格- 程式碼的縮排 在撰寫程式時記得使用縮排編排程式碼,適當縮排程式碼,可以讓程式更加容易閱讀,因為可以反應出程式碼的邏輯和迴圈架構,例如:迴圈區塊的程式碼縮幾格編排,如下所示: for ( i = 0; i <= 10; i++ ) { total = total + i; }

21 6-3 變數與資料型態 6-3-1 變數的資料型態 6-3-2 變數、常數宣告與指定敘述 6-3-3 HTML編碼與純文字內容

22 6-3-1 變數的資料型態-1 資料型態 說明 位元組 範圍 bool 布林值 1/2 true或false byte 正整數 1
0~255 sbyte 整數 -128~127 char 字元 2 0~65535 short 短整數 -32,768~32,767 ushort 正短整數 0~65,535 int 4 -2,147,483,648~2,147,483,647 uint 0~4,294,967,295

23 6-3-1 變數的資料型態-2 資料型態 說明 位元組 範圍 long 長整數 8
-9,223,372,036,854,775,808~9,223,372,036,854,775,807 ulong 正長整數 0~18,446,744,073,709,551,615 float 單精度的浮點數 4 E38~ E38 double 雙精度的浮點數 E308~ E308 decimal 數值 16 ~ string 字串 依平台 Unicode字元 object 物件 物件型別變數可以儲存各種資料型別的值

24 變數在程式碼扮演的角色是儲存程式執行中的一些暫存資料,在C#語言是使用資料型態名稱開頭來宣告變數,如下所示:
6-3-2 變數、常數宣告與指定敘述-變數宣告 變數在程式碼扮演的角色是儲存程式執行中的一些暫存資料,在C#語言是使用資料型態名稱開頭來宣告變數,如下所示: double area; string name; 上述程式碼宣告名為area和name的變數,資料型態分別為double和string。我們也可以在同一列程式碼宣告多個變數,只需使用「,」號分隔,如下所示: uint height, width; 上述程式碼宣告2個正整數uint資料型態的變數。

25 如果需要,還可以在宣告同時指定變數的初值,如下所示:
6-3-2 變數、常數宣告與指定敘述-變數初值 如果需要,還可以在宣告同時指定變數的初值,如下所示: double area = 25.0; string name = "陳會安"; 上述程式碼使用「=」等號指定變數area和name的初值。

26 6-3-2 變數、常數宣告與指定敘述- 使用var關鍵字宣告變數
var len = 150; var title = "C#程式設計";

27 6-3-2 變數、常數宣告與指定敘述- 文字值 當變數的初值或之後指定敘述指定的值是字元、整數值、浮點數或字串等常數值,就稱為「文字值」(Literals)。字串的文字值是使用雙引號括起,字元的文字值是使用單引號括起,如下所示: string page = "我的首頁"; char a = 'A'; 整數文字值預設是int資料型態,如果宣告uint、long或ulong資料型態的變數,我們需要在字尾加上字尾型態字元,指明文字值的資料型態:uint是U/u ,long是L/l ,ulong是UL/ul ,float是f/F ,decimal是m/M 。

28 上述程式碼使用指定敘述指定變數值,並且使用字尾型態字元指定成正整數的文字值。當然變數也可以指定成其他變數的值,如下所示:
6-3-2 變數、常數宣告與指定敘述-指定敘述 在C#宣告變數後,因為變數是用來儲存暫存資料,我們可以隨時指定或更改變數值,指定敘述是使用「=」等號來指定變數值。例如:指定變數height的值,如下所示: height = 500u; 上述程式碼使用指定敘述指定變數值,並且使用字尾型態字元指定成正整數的文字值。當然變數也可以指定成其他變數的值,如下所示: width = height;

29 6-3-2 變數、常數宣告與指定敘述-常數宣告與使用
程式碼的常數是使用一個常數名稱來取代固定的數值或字串,與其說是一種變數,不如說是名稱轉換,將一些值使用有意義的名稱來取代。C#語言的常數在宣告時一定需要指定其值,如下所示: const double PI = ; 上述程式碼使用const關鍵字宣告圓周率常數PI。在C#程式碼可以直接使用常數來計算圓面積,如下所示: area = PI * 4 * 4;

30 6-3-3 HTML編碼與純文字內容-HTML編碼
@{ string name = "<Joe>"; } 上述變數name的值包含「<」和「>」符號,因為ASP.NET自動執行HTML編碼,所以最後輸出的編碼字串,如下所示: <div>姓名: <Joe></div>

31 6-3-3 HTML編碼與純文字內容-「@:」符號與<text>標籤
@{ <br/> <text> 我的姓名是> </text> }

32 6-4 運算子 6-4-1 運算子的優先順序 6-4-2 算術與字串連接運算子 6-4-3 關係運算子 6-4-4 邏輯運算子 6-4-5 指定運算子

33 6-4 運算子 在C#指定敘述的等號右邊可以是運算式或是條件運算式,這些都是使用「運算子」(Operator)和「運算元」(Operand)組成的運算式。 C#語言提供完整算術(Arithmetic)、關係(Relational)和邏輯(Logical)運算子。一些運算式的範例,如下所示: a + b – 1 a >= b a > b && a > 1 運算式變數a、b和數值1都屬於運算元,「+」、「-」、「>=」、「>」和「&&」為運算子。

34 上述運算式先計算b*2後才和a相加,這就是運算子優先順序「*」大於「+」。
6-4-1 運算子的優先順序-說明 C#語言的運算子分為很多種,在同一個運算式如果使用多種運算子,為了讓運算式能夠得到相同的運算結果,運算式是以運算子預設的優先順序進行運算,也就是我們熟知的「先乘除後加減」口訣,如下所示: a + b * 2 上述運算式先計算b*2後才和a相加,這就是運算子優先順序「*」大於「+」。

35 6-4-1 運算子的優先順序-預設的優先順序 運算子 說明 ()、[]、++、--、.、new、typeof、sizeof
括號、陣列元素、遞增、遞減和物件與記憶體的相關運算子 !、-、+、~、(type) 邏輯運算子NOT、負號、正號、1'補數、型態轉換 *、/、% 算術運算子的乘、除法和餘數 +、- 算術運算子加和減法 <<、>> 位元運算子左移、右移 >、>=、<、<= 關係運算子大於、大於等於、小於和小於等於 ==、!= 關係運算子等於和不等於 & 位元運算子AND ^ 位元運算子XOR | 位元運算子OR && 邏輯運算子AND || 邏輯運算子OR ?: 條件控制運算子 =、op= 指定運算子

36 6-4-2 算術與字串連接運算子- 算術運算子 C#語言的算術運算子就是常用的數學運算子,大部分運算子都是二元運算子(Binary Operators),需要2個運算元。其中+、-運算子也可以是單元運算子(Unary Operators)的正負號。各種算術運算子的說明與範例,如下表所示: 運算子 說明 運算式範例 - 負號 -7 * 乘法 15 * 6 = 90 / 除法 7.0 / 2.0 = 3.5 7 / 2 = 3 % 餘數 7 % 2 = 1 + 加法 = 37 減法 24 – 13 = 11

37 6-4-2 算術與字串連接運算子- 字串連接運算子
「+」運算子對於數值資料型態來說,是加法,可以計算兩個運算元的總和。如果運算元的其中之一或兩者都是字串資料型態時,「+」運算子就是字串連接運算子,可以連接多個字串變數或文字值,如下表所示: 運算子 說明 運算式範例 + 字串連接 "ab" + "cd"="abcd" "ASP.NET網頁"+"設計"="ASP.NET網頁設計"

38 6-4-3 關係運算子 C#語言的關係運算式是一種比較運算,通常是使用在迴圈和條件敘述的判斷條件。C#語言的關係運算子(Relational Operators)說明與範例,如下表所示: 運算子 說明 運算式範例 結果 == 等於 16 == 13 false != 不等於 16 != 13 true < 小於 16 < 13 > 大於 16 > 13 <= 小於等於 16 <= 13 >= 大於等於 16 >= 13

39 上述條件運算式先執行a > b的運算,然後才是a > 1。
6-4-4 邏輯運算子-說明 C#語言的條件運算式(Conditional Expressions)是一種複合運算式,其每一個運算元是關係運算子建立的關係運算式。如果有多個關係運算式就需要使用邏輯運算子(Logical Operators)來連接,如下所示: a > b && a > 1 上述條件運算式先執行a > b的運算,然後才是a > 1。

40 6-4-4 邏輯運算子-種類 C#語言的邏輯運算子說明與範例,如下表所示: 運算子 範例 說明 ! ! op
NOT運算,傳回運算元相反的值,true成false;false成true && op1 && op2 AND運算,連接的2個運算元都為true,運算式為true || op1 || op2 OR運算,連接的2個運算元,任一個為ture,運算式為true

41 6-4-5 指定運算子 C#指定運算子除了使用指定敘述「=」等號外,指定運算子還可以配合其他運算子來簡化運算式,建立簡潔的算術運算式,如下表所示: 運算子 範例 相當的運算式 說明 = x = y N/A 指定敘述 += x += y x = x + y 加法或字串連接 -= x -= y x = x - y 減法 *= x *= y x = x * y 乘法 /= x /= y x = x / y 除法 %= x %= y x = x % y 餘數

42 6-5 流程控制 6-5-1 是否選和二選一 6-5-2 多選一的條件敘述 6-5-3 for與foreach迴圈 6-5-4 while與do/while迴圈 6-5-5 break和continue關鍵字

43 流程控制是使用條件運算式來進行判斷,以便執行不同區塊的程式碼,或重複執行指定區塊的程式碼。流程控制指令主要分成兩類,如下所示:
6-5 流程控制 流程控制是使用條件運算式來進行判斷,以便執行不同區塊的程式碼,或重複執行指定區塊的程式碼。流程控制指令主要分成兩類,如下所示: 條件控制:條件控制是一個選擇題,可能是單一選擇或多選一,依照條件運算式的結果,決定執行哪一個區塊的程式碼。 迴圈控制:迴圈控制可以重複執行指定區塊的程式碼,而且在迴圈中擁有結束條件,可以結束迴圈的執行。

44 6-5-1 是否選和二選一- if是否選條件敘述(1)
if條件敘述是一種是否執行的單選題,只是決定是否執行程式區塊內的程式碼,如果條件運算式的結果為true,就執行之後的程式區塊。例如:判斷學生成績是否及格,如下所示: @{ int grade = 65; if (grade >= 60) { } if條件如果為true,就執行程式區塊的程式碼,顯示成績及格,如果false就不執行程式碼。

45 6-5-1 是否選和二選一- if是否選條件敘述(2)
@if (grade < 60) { }

46 6-5-1 是否選和二選一- if/else二選一條件敘述
if條件敘述是選擇執行或不執行程式區塊的單選題。如果條件是擁有排它情況的2個程式區塊,只能二選一,我們可以加上else關鍵字。如果if條件為true,就執行else之前的程式區塊;false執行else之後的程式區塊,如下所示: @{ int grade; grade = 58; if (grade >= 60) { } else { }

47 6-5-2 多選一的條件敘述- if/else/if多選一條件敘述
if/else/if多選一條件敘述是if/else條件的擴充,只需重複使用if/else條件,就可以建立多選一條件敘述。例如:使用年齡來檢查購票種類,如下所示: @{ int age = 25; if (age <= 12) { @:半票<br/> } else if (age <= 65) { @:全票<br/> } else { @:優惠票<br/> }

48 6-5-2 多選一的條件敘述- switch多選一條件敘述
C#語言的另一種多選一條件敘述是switch多條件敘述,它是依照符合條件執行不同程式區塊的程式碼,例如:學生成績是使用GPA的A、B、C、D來打成績,我們可以顯示轉換的成績範圍,如下所示: @switch (grade) { case 'A': @:超過80分<br/> break; case 'B': @:70~79分<br/> case 'C': @:60~69分<br/> default: @:低於60分<br/> }

49 6-5-3 for與foreach迴圈- for迴圈敘述(1)
for (i = 1; i <= 10; i++) { total += i; }

50 6-5-3 for與foreach迴圈- for迴圈敘述(2)
相反情況,我們可以使用遞減for迴圈從5到1,計數器是使用i--,表示每次遞減1,如下所示: for ( i = 5; i >= 1; i-- ) { … }

51 6-5-3 for與foreach迴圈- foreach迴圈敘述
foreach迴圈和for迴圈敘述十分相似,只不過foreach迴圈通常是使用在集合物件或陣列,可以顯示集合物件或陣列的所有元素,特別適用在不知道有多少元素的集合物件或陣列時,如下所示: @{ string[] myNames = {"陳會安", "江小魚", "陳允傑"}; } @foreach(string name in myNames) { <br/>

52 6-5-4 while與do/while迴圈- 前測式while迴圈敘述
前測式while迴圈敘述是使用while條件在迴圈開頭檢查條件,以判斷是否允許進入迴圈,換句話說,while條件如果成立時才允許進入迴圈,如下所示: @{ int total = 0; int counter = 1; while (counter <=10) { total += counter; counter += 1; }

53 6-5-4 while與do/while迴圈- 測式do/while迴圈敘述
@{ int counter = 1; int total = 0; do { total += counter; counter += 1; } while (counter <= 10); }

54 6-5-5 break和continue關鍵字- break關鍵字中斷迴圈
迴圈如果尚未到達結束條件,我們可以使用break關鍵字強迫跳出迴圈。例如:使用break關鍵字結束for迴圈的執行,如下所示: for (i = 1; i <= 100; i++) { total += i; if (i > j) break; } 上述for迴圈使用if條件判斷是否執行break,當迴圈執行到break關鍵字,就中斷迴圈的執行。

55 6-5-5 break和continue關鍵字- continue關鍵字繼續迴圈
C#語言的continue關鍵字可以馬上繼續下一次迴圈的執行,而不執行程式區塊中位在continue關鍵字後的程式碼。如果使用在for迴圈,一樣會更新計數器變數。例如:使用continue關鍵字馬上繼續下一次while迴圈的執行,如下所示: while (i < 100) { i += 1; if (i % 2 == 0) continue; total += i; } while迴圈使用if條件判斷是否執行continue關鍵字,如果是偶數,就馬上執行下一次迴圈,換句話說,就是計算所有奇數的總和。

56 6-6 陣列-說明 陣列是一組同型別變數的集合,如果程式需要使用多個相同資料型別的變數時,就可以直接宣告一組變數的陣列,而不用宣告一堆變數。陣列是使用陣列索引來存取指定陣列元素的值。

57 6-6 陣列-一維陣列 一維陣列對比信箱是單排信箱,C#陣列在宣告時需要指定陣列大小。因為C#語言的陣列是一種物件,所以需要使用new運算子建立陣列。例如:宣告和建立字串陣列name[],如下所示: string[] name = new string[4]; 上述陣列大小為4,因為索引值是從0起算至括號值4減一的3。

58 6-6 陣列-陣列初值 在宣告陣列的同時,也可以指定陣列元素的初值,如下所示: 或
string[] nickname = {"小安", "小魚", "小乖", "小楊"}; string[] name1 = new string[4] {"陳會安", "江小魚", "陳允傑", "楊過",}; 程式碼使用兩種方式來宣告一維陣列且指定初值,其中nickname[]沒有指定尺寸,其尺寸就是後方初值的個數。

59 6-6 陣列-存取陣列元素 如果陣列沒有指定初值,我們還可以使用指定敘述來指定陣列值,如下所示:
name[0] = "陳會安"; name[1] = "江小魚"; name[2] = "陳允傑"; name[3] = "楊過"; 上述程式碼使用索引值來指定陣列元素。至於取出陣列值的程式碼,如下所示: myName = name[2]; myNick = nickname[2]; 上述程式碼取得陣列元素索引值為2的陣列變數值,也就是第3個陣列元素。

60 6-6 陣列-多維陣列 多維陣列擁有多個索引,對比前述信箱就是多排信箱,二維陣列擁有2個索引;三維陣列有3個,依序類推。事實上,只需是表格編排的資料,就可以建立多維陣列來儲存這些資料。例如:學生成績的二維陣列,其宣告如下所示: string[,] students = new string[3,2];

61 6-7 函數 6-7-1 建立函數 6-7-2 變數的有效範圍與參數的傳遞

62 6-7-1 建立函數-說明 「函數」(Functions)是將程式中常用的共同程式碼獨立成區塊,以便能夠重複呼叫這些區塊的程式碼。一般來說,函數都有傳回值,如果函數沒有傳回值,也稱為「程序」(Procedures)。 C#語言的函數是一個可以重複執行的程式區塊,在ASP.NET的Razor語法可以使用C#函數來建立自訂功能的函數。

63 6-7-1 建立函數-宣告函數 {」和「}」程式區塊,如下所示: @functions { int sumOneToN(int max) { int total = 0; int counter = 1; while (counter <= max) { total += counter; counter += 1; } return total;

64 函數擁有傳回值,呼叫函數通常是在運算式指定敘述的右邊,如下所示:
6-7-1 建立函數-呼叫函數 函數擁有傳回值,呼叫函數通常是在運算式指定敘述的右邊,如下所示: @{ int total; total = sumOneToN(100); // 呼叫函數 <br/> } 上述函數呼叫的括號內為傳入參數,以此例是傳回1加到100的總和。

65 6-7-2 變數的有效範圍與參數的傳遞- 有效範圍
在C#函數宣告變數的有效範圍,也就是程式碼可以存取此變數的範圍,如下所示: 區域變數範圍(Local Scope):在函數內宣告的變數,只能在函數中使用,稱為區域變數。 全域變數範圍(Global Scope):如果變數是在函數外宣告,在ASP.NET網頁中的各函數都可以使用此變數,稱為全域變數。

66 6-7-2 變數的有效範圍與參數的傳遞- 參數傳遞
函數的參數傳遞方式會影響到傳入參數值是否能夠變更,C#函數提供三種參數傳遞方式,如下表所示: 呼叫方式 關鍵字 說明 傳值呼叫 N/A 將變數值傳入函數,並不會變更原變數值 傳址呼叫 ref 將變數實際儲存記憶體位址傳入,所以在函數變更參數值,也會同時變更變數值 傳出呼叫 out 傳出呼叫的參數也可以變更參數值,其和傳址呼叫的差異在於傳入的參數值並不需指定初值,而傳址呼叫的參數一定需要指定初值

67 6-8 物件的使用與型態轉換 6-8-1 WebPage物件 6-8-2 資料型態的轉換

68 取得目前HTTP回應的HttpResponse物件,此物件的屬性是目前回應至瀏覽器頁面的相關資訊
6-8-1 WebPage物件-說明 Web Pages開發模型的ASP.NET程式本身是一個WebPage物件,我們可以存取屬性來取得頁面路徑、Request和Response物件等,如下表所示: 屬性 說明 Request 取得目前HTTP請求的HttpRequest物件,此物件的屬性是目前請求的相關資訊,例如:Request.FilePath取得目前頁面的路徑;Request.Url取得URL網址 Response 取得目前HTTP回應的HttpResponse物件,此物件的屬性是目前回應至瀏覽器頁面的相關資訊

69 6-8-1 WebPage物件-範例 以Request屬性來說,我們可以取得瀏覽器相關HTTP請求的資訊,如下所示: @{
var path = Request.FilePath; var url = Request.Url; var appPath = Request.ApplicationPath; var type = Request.RequestType; } FilePath <br/> Url <br/> ApplicationPath <br/> RequestType

70 6-8-2 資料型態的轉換-說明 在實務上,有時我們需要明確進行型態轉換,最常是使用在將使用者輸入的字串資料轉換成其他資料型態,這是一些As開頭的方法;檢查資料型態是Is開頭的方法,如下所示: @{ int num = 0; string str = "123"; if (str.IsInt()) { num = str.AsInt(); }

71 6-8-2 資料型態的轉換-常用方法 方法 說明 AsInt() 將數字內容的字串轉換成整數型態 IsInt()
檢查字串內容是否是整數型態,是傳回true AsBool() 將true或false內容的字串轉換成布林型態 IsBool() 檢查字串內容是否是布林型態,是傳回true AsFloat() 將擁有小數內容的字串轉換成浮點數型態 IsFloat() 檢查字串內容是否是浮點數型態,是傳回true AsDecimal() 將擁有小數內容的字串轉換成Decimal數值型態 IsDecimal() 檢查字串內容是否是Decimal數值型態,是傳回true AsDateTime() 將擁有日期時間內容的字串轉換成DateTime型態 IsDateTime() 檢查字串內容是否是DateTime型態,是傳回true

72 作業 請使用Razor語法建立一asp程式建立從1-100的迴圈,但只顯示45~67之間的奇數,並計算其總和


Download ppt "6 C#語言與Razor語法 6-1 C#語言與Razor語法 6-2 C#語言的基本撰寫規格 6-3 變數與資料型態 6-4 運算子"

Similar presentations


Ads by Google