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();
轉載于:https://www.cnblogs.com/H2921306656/p/5597049.html
總結
- 上一篇: 【HDU 1269】迷宫城堡 (Tarj
- 下一篇: 原创:在苏德战争爆发后,英国竟然还想轰炸