PowerPoint 簡報

Download Report

Transcript PowerPoint 簡報

C# 基本語法、變數
ASP.NET網頁程式撰寫模型
撰寫ASP.NET程式有兩種網頁程式碼模型(Page Code
Model)可選擇 。
單一檔案網頁模型(.aspx)
網頁撰寫模型
程式碼後置網頁模型(.aspx
+ .aspx.cs)
ASP.NET網頁程式撰寫模型
單一檔案網頁模型
所謂的單一檔案網頁模型(Single-File Page Model)就
是將所有的HTML宣告、ASP.NET標記、伺服器控制項、
靜態文字及C# 全部混合寫在一個.aspx檔案之中
 這種方式也稱為「Inline Code」,早期的ASP程式就是採
用這種模型

<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
public string getTime()程式一
{
return DateTime.Now.ToLongTimeString();
程式一
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>未命名頁面</title>
</head>
<body>
<form id="form1" runat="server">程式二
<div>
現在伺服器時間是:<% =getTime() %>
程式二
</div>
</form>
</body>
</html>
程式說明:
1.
程式一是一段內嵌的C# 的方法(Method,亦可稱之為
函數或副程式),裡面定義了一個getTime()方法,其
作用是透過DateTime.Now來回傳伺服器時間。程式二
是呼叫getTime()方法,這段C# 程式是在後端伺服器執
行。
2.
程式二「<% %>」這表示執行後端伺服器上的運算,
而非前端的HTML運算。
執行ASP.NET程式有三種方式:
1.
在瀏覽器中檢視
在InlineCode.aspx程式按滑鼠右鍵選擇【在瀏覽器中
檢視】,如此便可執行InlineCode.aspx網頁程式(無偵
錯)。
在瀏覽器中
檢視
設定為起始頁
在瀏覽器檢視
2.
以【F5】偵錯模式執行
首先必須將InlineCode.aspx設定為起始頁,再以【F5】
執行程式,這是一種可以進行偵錯的模式。
3.
以【Ctrl】+【F5】無偵錯模式執行
首先也是必須將InlineCode.aspx設定為起始頁,再以
【Ctrl】+【F5】執行程式,這是一種無偵錯的執行模
式。
程式碼後置網頁模型

程式碼後置網頁模型:口語稱之為Code-Behind)是將
C# 程式由從網頁Tag檔中抽離,讓Tag及控制項標籤保留
在.aspx檔案中,而C# 程式邏輯儲存在另一個.aspx.cs檔
案之中,如此是一種最理想的開發與維護模型,同時也利
於偵錯。
Code-Behind的Web Form檔案結構
C# 程式結構及程式註解
SampleFile.aspx.cs程式碼及註解:
說明如下:
 命名空間
.NET程式使用到的類別庫(Class Library)功能都是包
含在命名空間(Namespace)之中 。
 partial class部分類別宣告
ASP.NET的Code-Behind程式檔,對於預設的類別名稱
皆是以「partial class」來宣告,partial class中文稱之
為「部分類別」。
 類別名稱
這是Code-Behind檔中的類別名稱,一般預設是和Web
Form 的名稱一致。
 繼承Page類別
冒號(:)表示SampleFile類別繼System.Web.UI.Page類
別的功能。
 Page類別
Page類別含有Web Form所需的基礎功能,故絕大多數情
況下,Code-Behind的Web Form表單類別都會繼承
Page類別,以繼承所需的相關功能。
 Page_Load事件處理常式
這個事件是每個Web Form表單一載入(Load)就會執行
的事件處理常式。
 多行註解
如果想將程式註解分為好幾行,可以使用/* … **/符號來
進行多行註解。
 單行註解
如果程式註解只有一行,直接使用雙斜線//符號註解即可。
 控制項之事件處理常式
一般若對ASP.NET控制項雙擊(Double Click)之後,就
會產生一段事件處理常式,於其中就可加入欲執行的程式。
 XML文件註解
當程式加入XML文件註解後,編譯器將會搜尋原始程式碼
中的所有 XML 標記,然後建立 XML 文件檔。
 自訂Method方法
若在類別中自訂一些Function或副程式,C# 稱之為
「Method」,中文稱叫做「方法」,其實是一樣的意思。
變數與型別
.NET Framework變數可分為兩大類型:實值型別、
參考型別:
1. 實值型別(Value Type)
實值型別直接存放真正的資料。所以每個實值型別的資
料是各自獨立的,即使一個實值型別的資料被修改,亦
不會影響其他實值型別的資料。
2. 參考型別(Reference Type)
參考型別所儲存的是指向真正資料位址的指標。而一個
資料可能會被多個參考型別變數參考,因此若改變了其
中一個變數,進而最原始的資料亦會改變,將影響所有
參考這個位址的所有變數。
型別分類圖
.NET Framework內建的實值型別
Framework型別與C# 型別之間會形成一個對應關係,但最
終都會轉換成.NET Framework型別。
變數宣告與初始化
C#的變數在使用上有兩個地方需要注意的地方,一是變數宣
告;二是變數初始化 。
1.變數宣告
在撰寫C# 程式時,對於不同的資料需使用不同資料型態的
變數來表示。
變數的宣告語法如下:
資料型別
變數名稱;
 宣告一個string字串型別的名字變數:
string lastName;
 宣告一個整數型別的年齡變數:
int age;
 宣告一個Decimal型別的銀行存款金額及利率:
decimal money;
decimal rate;
變數初始化
初始化的方式有兩種:一是使用new關鍵字呼叫變數型別
的建構式(Constructor);第二種方式是直接指定一
個初始值給變數 。
2.
 以new關鍵字初始化區域變數
int age=new int();
age=99;
 直接指定區域變數初始值
int age=99;
變數命名規則及建議
:

變數命名規則

變數名稱命名,建議開頭請以字母來命名。
接著在第一個字母之後可以使用字母、數字或底線來命名。
變數名稱嚴格區分大小寫,如MyVal與myVal二者將視為
不同的二個變數。
禁止使用系統的保留關鍵字,因為關鍵字是對編譯器有特
殊意義而預先定義的保留事項,所以若不小心使用到保留
字,在程式編譯時將會發生錯誤。



常數
C# 使用「const」關鍵字來宣告常數。
日期時間型別 (System.DateTime)
C#對於日期時間的處理是使用 .NET
Framework 內建的 System.DateTime 類別
DateTime 類別可以設定或取得某一日期與
時間的數值,
DataTime d = new DateTime(西元年 ,月 ,日 [,時 ,分 ,秒 ]);
建立物件的語法如下:
//建立物件 d 代表 2011 年 10 月 18 日
DataTime d = new DateTime(2011,10,18);
//建立物件 d 代表 2011 年 3 月 12 日 1 時 3 分 5 秒
DataTime d = new DateTime (2011,3,12,1,3,5);
資料型別之轉換
1.
將string字串型別的12345,轉換為int型別的
12345,而這樣的過程就稱之為「型別轉換」。
2.
而資料型別的轉換又可分為兩種:隱含轉換、
明確轉換。
隱含轉換(Implicit Conversions)
隱含轉換(Implicit Conversions) 就是系統會自動對不
同資料型別的資料進行轉換。
 例如:將整數(int)轉換成長整數(long)兩種不同型
別,可以直接將int值指定給long型別變數,而不必下達
任何額外的轉換指令:

int height = 180;
long h = height;
明確轉換(Explicit Conversions)


相對於隱含轉換,另一種是程式設計師必須自行轉換,這
種就稱之為明確轉換。
明確轉換語法:
(轉換型別)原始數值
int與short兩種型別轉換 :
//不合法的隱含轉換
h = height;
w = weight;
//合法的明確轉換
h = (short)height;
w = (short)weight;
明確轉換轉換注意事項:
1.
2.
3.
4.
5.
6.
明確數值轉換可能會遺失小數位數或造成擲回例外
狀況。
當decimal值轉換成整數類資料型別時,這個值會捨
入小數點後的數字至零,成為最接近的整數值。
當double或float值轉換成整數類資料型別時,此值
會被截斷。
當double轉換成float時,double值會捨入為最接近
的float值。
當float或double轉換成decimal時,來源值會轉換
為decimal表示,並捨入至最接近第28位小數位置的
數字 。
當decimal轉換成float或double時,decimal值會捨
入為最接近的double或float值。
萬用的型別轉換指令~Convert
1.
2.
型別的轉換有隱含及明確兩種方式,但還是有許多時
候,還是會遇見這兩種方式都無法完成型別轉換的工
作。
Convert感覺上像是一種萬用型別轉換指令,只要型
別間轉換屬合理的,大多都能夠完成型別轉換的工作。
Convert語法:
Convert.轉換方法(被轉換的數值)
Convert類別支援的型別轉換方法
 數值轉字串
int i=100;
string myString=Convert.ToString(i);
Response.Write(myString);
 字串轉數值
string myString="100";
int i=Convert.ToInt32(myString);
Response.Write(i);