第一部分 瞭解C# C#是微軟公司在2000年7月發佈的一種全新且簡單、安全、面向對象的程式設計語言,是專門為.NET的應用而開發的。體現了當今最新的程式設計技術的功能和精華。.NET框架為C#提供了一個強大的、易用的、邏輯結構一致的設計環境。其特點: 語言簡潔 保留了C++的強大功能; 快速應用開 ...
第一部分 瞭解C#
C#是微軟公司在2000年7月發佈的一種全新且簡單、安全、面向對象的程式設計語言,是專門為.NET的應用而開發的。體現了當今最新的程式設計技術的功能和精華。.NET框架為C#提供了一個強大的、易用的、邏輯結構一致的設計環境。其特點:
- 語言簡潔
- 保留了C++的強大功能;
- 快速應用開發功能;
- 語言的的自由性;
- 強大的Web伺服器控制項;
- 支持跨平臺;
- 與XML相融合;
第二部分 C#語言基礎;
一、C#項目的組成結構;
1、項目尾碼
.config——配置文件(存放配置參數文件)
.csproj——項目文件(管理文件項)
.sln——解決方案文件(管理項目)
.cs——源文件(程式代碼)
註:尾碼不同代表文件類型也不同,這些文件尾碼類型會在“解決方案資源管理器”中看到。
2、函數的四要素:名稱,輸入,輸出,加工。
3、主函數,輸出語句,輸入語句:
//命名空間
namespace ConsoleApplication1
{//類
class Program
{
//程式的入口
static void Main(string[] args)
{
//輸出語句,列印不換行
Console.Write("這是我的第一個C#程式!");
//輸出語句,列印完成換行
Console.WriteLine("Hello world!");
//輸入語句,等待直到接收到回車命令為止,獲取一整行內容
//一個等號表示賦值號
string s = Console.ReadLine();
Console.WriteLine(s);
Console.ReadLine();
}
}
}
註意:●輸出:
Console.WriteLine("這是我的第一個程式。");
Console.WriteLine("這是第二行代碼。");
Console.Write("這是要輸出的文字。");註意:沒有換行
註意:
1.大小寫敏感;
2.所有的符號全都用英文;
3.不要漏掉;。
●輸入:
string s = Console.ReadLine();
//這句話的意思是從控制台程式讀取一整行內容放到s這個容器裡面
Console.WriteLine("你剛剛輸入的是:"+s);
string -字元串類型
s -變數名
= -賦值
Console.ReadLine(); - 從控制台程式讀取一整行
4、快捷鍵的使用
● Alt + →提示,需要執行程式時點擊啟動或Ctrl+F5;
● ctrl + K(ctrl + E), 然後按ctrl + C,註釋本行(軟體工具欄中有快捷圖標);
● ctrl + K(ctrl + E), 然後按ctrl + U,取消註釋(軟體工具欄中有快捷圖標);
● Shift + delete,一刪刪一行;
● Ctrl + X,剪切一行;Ctrl + Z,回覆;
● Ctrl + Shift + Space,將游標放在方法函數括弧裡面時使用,顯示重載
5、註意事項
(1)、註釋和[取消註釋]:
● 選中相應的行,點擊工具欄中的註釋選中行[取消註釋選中行];
● 選中相應的行,使用快捷鍵:Ctrl+K Ctrl+C [Ctrl+K Ctrl+U]
● 手動註釋:在不要的行前面加//(註釋一整行)
● 註釋其中一段代碼:/*這裡面是代碼 */
● 註釋的作用://這兩行是輸出的功能
技巧:
● 寫的代碼儘量使用智能感知功能;
● 先寫總體,再完善細節;
● 自動完成單詞功能。Alt+→
例如:/*表示註釋一段內容
Console.Write("請輸入你的姓名:");
string name = Console.ReadLine();
Console.Write("請輸入你的年齡:");
string age = Console.ReadLine();
Console.Write("\n");
//第一種方式
//Console.WriteLine("你的姓名是"+name+",今年"+age+"歲了。");*/
//加號在遇到string類型的時候表示拼接
//第二種方式
//Console.WriteLine("你的姓名是{0},今年{1}歲了。",name,age);
//Console.ReadLine();
(2)、在一行聲明相同類型的多個變數之間用逗號分開。
例:int a, b;//聲明變數類型,用逗號隔開
(3)、同一語句中,不能對同一個變數名聲明成同一類型兩次。
例:int a = 4; int a = 5;//錯誤
綜上練習題:案例:輸入姓名,年齡,單位,
整合成一個流暢的句子顯示出來。
主要程式:Console.Write ("請輸入你的姓名:");
string name = Console.ReadLine();
Console.Write("請輸入你的年齡:");
string age = Console.ReadLine();
Console.Write("請輸入你的單位:");
string danwei = Console.ReadLine();
Console.WriteLine("你的姓名是"+a+",今年"+b+"歲了,在"+c+"實訓");
Console.ReadLine();
"你的名字是***,今年**歲了,在**實訓。"將a,b,c代入***。
"你的名字是"+a+",今年"+b+"歲了,在"+c+"實訓。"
二、數據類型
大類 |
小類 |
C#語言 |
.net語言(通用語言) |
說明 |
大小(位元組) |
值區間 |
基本數據類型(值類型) |
整型 |
sbyte |
SByte |
8位有符號整數 |
1 |
-128~127(負的2的7次方~正的2的7次方減1) |
short |
Int16 |
16位有符號整數 |
2 |
-32768~32767(負的2的15次方~正的2的15次方減1) |
||
int |
Int32 |
32位有符號整數 |
3 |
(負的2的31次方~正的2的31次方減1) |
||
long |
Int64 |
64位有符號整數 |
4 |
(負的2的63次方~正的2的63次方減1) |
||
byte |
Byte |
8位無符號整數 |
1 |
0~255 (0~2的8次方減1) |
||
ushort |
UInt16 |
16位無符號整數 |
2 |
(0~2的16次方減1) |
||
uint |
UInt32 |
32位無符號整數 |
3 |
(0~2的32次方減1) |
||
ulong |
UInt64 |
64位無符號整數 |
4 |
(0~2的64次方減1) |
||
浮點型 |
float |
Single |
32位單精度浮點數 |
4 |
1.5 × 10−45 到 3.4 × 1038 |
|
double |
Double |
64位雙精度浮點數 |
8 |
5.0 × 10−324 到 1.7 × 10308 |
||
decimal |
Decimal |
128精確浮點數 |
16 |
1.0 × 10−28 到大約 7.9 × 1028 |
||
字元型 |
char |
Char |
16位Unicode字元,放在''里的是字元 |
2 |
任意字元 |
|
布爾型 |
bool |
Boolean |
表示true或者false |
1 |
True或Flase |
|
日期時間 |
datetime |
DateTime |
||||
結構體 |
struct |
Struct |
||||
枚舉類型 |
enum |
Enum |
||||
引用類型 |
字元串類型 |
string |
String |
字元序列 |
||
類 |
||||||
數組 |
||||||
集合 |
1、基本數據類型:值類型
⑴、整數類型:int(最常用)
int a = 2;
⑵、浮點型:double(最常用)是C#預設小數類型,float用需加尾碼f,decimal用需加尾碼m。
double b = 3.14;
a = (int)b;
float c = 3.14f;
decimal d = 3.14m;
⑶、布爾型:用於判斷,只允許放TRUE或者FALSE。
bool e = false;
e = true;
2、引用類型:字元串型string,長度較長,定義時用雙引號。
string ss = "Hello world!";
Console.WriteLine(e);
3、類類型
object 所有其他類型的最終基類
4、介面類型:interface
三、C#轉義字元
\’ 單引號 \” 雙引號 \\ 反斜杠 \0 空
\a 警告(產生峰鳴) \b 退格 \f 換頁 \n 換行
\r 回車 \t 水平製表符 \v 垂直製表符
四、變數、常量
1、變數名的命名規則:
●變數名組成:字母,數字,下劃線,@,漢字。
●首字母只能用字母,下劃線,@,漢字
●不能與關鍵字重名
2、變數的定義:
數據類型 變數名 [=值]; //[]內的值可以不寫
例子:int a=1;
註意:int a, b;//聲明變數類型,用逗號隔開
int a = 4; int a = 5;//錯誤
3、常量:只能夠取值,不能重新賦值
const int f = 5;
f = 7;錯誤,不能重新賦值
4、變數名前加關鍵字(不能賦值,只能取值):const
例子:const int a=1;
五、基本的類型轉換
1、自動轉換(隱式轉換)--從值類型轉換到引用類型時候
2、強制轉換(顯式轉換)--從引用類型轉換到值類型時候,或者從浮點型轉換到整形
當從一個引用類型轉換到值類型時,必須引用類型中的數據元素,能夠轉換成值類型的容量範圍內的數據才行,否則不能轉。
⑴、用(),註:在被轉換的數據左邊加上小括弧:(要被轉換成的數據類型);
例子:int a;double b=12.3;a=(int)b;
⑵、用convert;
例子: int a; float c; double b=12.3;
a=convert.ToInt32(b);
c=convert.Tosingle(b);
⑶、用parse,常用;
例子: int a; double b=12.3;
a=int.parse(b);
註:int a = 2;
string s = a.ToString();
例子:輸入三個數,求它們的和、差、積、商。
Console.WriteLine("請輸入a=");
double a = double.Parse(Console.ReadLine());
Console.WriteLine("請輸入b=");
double b = double.Parse(Console.ReadLine());
Console.WriteLine("兩個數的和為{0},兩個數的差為{1},兩個數的乘積為{2},兩個數的商為{3}",a+b,a-b,a*b,a/b);
Console.ReadLine();
六、運算符
分類 |
符號 |
解釋 |
優先順序 |
算數 |
++ -- |
加加 減減 |
由高到低,即執行順序由上到下.(圓括弧的優先順序最高) |
*/% |
乘 除 取餘 |
||
+ - |
加 減 |
||
關係 |
> < >= <= |
大於 小於 大於等於 小於等於 |
|
== != |
等於 不等於 |
||
邏輯 |
&& |
與(並且) |
|
|| |
或 |
||
! |
非(註:優先順序在此表的最頂層) |
||
條件運算符 |
?: |
惟一的一個三元運算符 如果 |
|
賦值 |
= += -= *= /= %= |
如:x-=4.即x=x-4; |
1、算數運算符:
⑴、+ -
int a = 2; int b = 5;
Console.WriteLine(a+b)
⑵* / %
int a = 10 % 3;
Console.WriteLine(a);
Console.ReadLine();
註意:
●做除法運算的時候,如果兩個操作都是整數,則運算之後的結果也是整數。
●做算數運算的時候,如果兩個被操作的數不是同一類型,則會在運算的時候會自動進行類型轉換。
備註:% 模 取餘的用途
●判斷a是不是b的倍數(是否能夠整除)====>a%b是否==0
●判斷a的個位是不是b====>a%10是否==b
●把數變成某個範圍之內的數(利用餘數一定比除數小的定理,比如十六進位裡面最大的單個數是F(15))
⑶、++ --
int a =5;
int b= a++; ====>可以寫成int b =a; a = a+1;
int c = ++a;====>可以寫成a = a+1; int c =a;
運算出來的結果就是
b = 5;
c = 7;
註意:●++ --這兩種運算只能應用於變數(5++是不對的!!常量也是不可以使用的!!)
●前++和後++的區別:加加在前,先運算再賦值;加加在後,先賦值再運算。
int a = 5;
int b = a++;//int b=a;a=a+1;
int c = ++a;//a=a+1;int c=a;
Console.WriteLine(a);
Console.WriteLine(b);
Console.WriteLine(c);
Console.ReadLine();
2、關係運算符:
== != > < >= <=
關係運算符運算結果統統是bool型(結果不是Ture就是False)
int a = 5;
int b = 6;
Console.WriteLine(a == b); ====>False
Console.WriteLine(a != b); ====>True
Console.WriteLine(a > b); ====>False
Console.WriteLine(a < b); ====>True
Console.WriteLine(a >= b); ====>False
Console.WriteLine(a <= b); ====>True
註意:== 不能寫成 =(一個=是賦值的意思)
3、邏輯運算符:
⑴、&&====>兩個條件都成立,結果為True,否則False
bool a = 3 > 2 && 3 < 7;//true
⑵、||====>兩個條件只要有一個成立,結果為True,兩個都不成立為False
bool b = 5 > 3 || 5 > 7;//true
⑶、!====>將原來的結果取相反的(若本來為True,取反就是False)
bool c = !(5 > 3) || 5 > 7;//false
Console.WriteLine(c);
Console.ReadLine();
4、其他運算
= ====>賦值運算,將後面的值賦給左側的變數。(註意:只能是變數)
+= -= *= /= %= ====>複合運算符(例:a += b;(意思是a = a +b;))
int a = 6;
a += 7;//a=a+7;
a *= 2;//a=a*2;
a %= 4;//a=a%4;
Console.WriteLine(a);
Console.ReadLine();
5、條件運算符:?
例題1:老狼老狼幾點了? 若是上午出現am,下午出現pm,若是下午,需要報時的時候減去12。
Console.Write("老狼老狼幾點了?");
int time = int.Parse( Console.ReadLine());
string s = time > 12 ? (time-12)+"pm" : time+"am";
Console.WriteLine(s);
Console.ReadLine();
例題2:鍵盤鍵入三個數,找出來最大的數。
Console.Write("輸入一個a值");
double a = double.Parse(Console.ReadLine());
Console.Write("輸入一個b值");
double b = double.Parse(Console.ReadLine());
Console.Write("輸入一個c值");
double c = double.Parse(Console.ReadLine());
//double d =a>b ? a:b;
//double e = d > c ? d : c;
double e = (a > b ? a : b) > c ? (a > b ? a : b) : c;
Console.WriteLine("最大的數是"+e);
Console.ReadLine();