變量的做用:爲了更好的管理內存數據,不一樣類型的數據存放在不一樣的內存塊中。ios
變量的特色:不一樣數據類型佔用的存儲空間大小不同。編程
變量的意義:內存地址是一串十六進制數,很是很差記憶,經過變量能夠快速找到數據。windows
1.要肯定存儲的數據的類型。框架
2.給這塊空間起一個有意義的名字,方便咱們使用空間中的內容。spa
存儲變量的語法:code
變量類型 tagName;orm
tagName = value;blog
C#中數據類型(數值類型/引用類型):內存
1)整數類型int:只能存儲整數,不能存儲小數。ci
2)小數類型double:既能存儲小數,又能存儲整數。
3)金錢類型decimal:用來存儲金錢,值後面加m。
4)字符串類型string:用來存儲文本,也可存儲空,要用「」括起來。
5)字符類型char:用來存儲單字符,不能爲空。
值類型默認是0
下面介紹兩個特殊的值類型(NaN和Infinity)
記住一條結論:Infinity*0,結果是0.而NaN*0的結果認識NaN。
下面描述一下C#和PLC中數據類型的取值範圍,它們仍是有許多不一樣之處的,以下表:
C# | PLC | |
int | -231~231 | -32767~32768 |
double | +-5*10-324~+-1.7*10308 | (DINT)-2147483648~-2147483648 |
decimal | (-7.9*1028~7.9*1028)/100~28 | |
string | 不適用 | 不適用 |
char | 不適用 | 不適用 |
變量的使用規則:使用變量,要先聲明後賦值在使用
變量的命名規則:
(1)必須以字母或「_」開頭,不要以數字開頭
(2)後面面能夠跟任意字母,數字和_。
注意:1.變量名不要有C#關鍵字重複。
2.C#中大小寫敏感。
3.同一個變量不要重複定義。
變量命名的方法:
1)Camel駱駝命名規則:要求變量名單詞首字母小寫,其他單詞首字母大寫,多用於變量或字段的命名。
2)Pascal命名規則:要求每一個單詞首字母大寫,多用於類或方法命名。
C#中及格經常使用符號:
(1)「+」號:1.當「+」兩邊有一個是字符串時候,起鏈接做用。
2.「+」兩邊是數字是相加。
(2){}佔位符:使用方法先挖坑,在填坑。輸出順序按照挖坑順序輸出。
1 Console.WriteLine("課程編號:"+courseID+"課程名稱:"+courseName); //+起到鏈接做用 2 3 Console.WriteLine("課程編號:{0}課程名稱:{1}".courseID,coureName);//{}佔位符的用法 4 5 Console.WriteLine($"課程編號:{courseID},課程名稱:{courseName}");//Framework 4.6語法糖
代碼第5行的語法糖稱爲字符串的插值,這在.NET Framework框架中,比「+」的效率高不少,鏈接符+會佔用不少內存。
注意:挖幾個坑,填幾個坑,多填沒有效果,少坑拋異常。
異常:語法上沒有任何錯誤,只不過運行期間,因爲某些緣由出現了問題,程序不在正確運行。
C#中的轉義符:指的就是一個‘\’加上一個特殊的字符,組成了一個具備特殊意義的字符。
(1)\n:表示換行。(適用於console/winform/ios系統)
(2)\":表示一個英文半角雙引號。
(3)\t:表示一個tab鍵的空格。4個或8個空格,空格多少取決於編譯器。
(4)\b:表示一個退格鍵,刪除前一個字符,放在字符串的兩邊沒有效果。
(5)\r\n:表示換行(windows系統適用)
(6)\\:表示一個\。
@符號的意義:1)取消\在字符串中的轉移做用。
2)將字符串按照原格式輸出。
C#中的強制類型轉換(顯式)和自動轉換(隱式)
顯示的給變量賦以惡初始值,是咱們編程的一個好習慣。
1 Console.Write("請輸入你的年齡"); 2 int age=int.Parse(console.ReadLine());
3 int age=string.ConverttoINT32(console.ReadLine());
這裏還要說一點,咱們已經知道,string類型咱們能夠賦空,語法有如下幾種方式
1)string tag="";
2) string tag=null;
3) string tag=string.Empty;
下面咱們介紹一個與變量對應的----常量
當咱們但願某一個值不但願被人修改,可使用常量。
常見應用:數學計算,上位機某些設備參數的定義。
常量的定義要求:
(1)必須在定義的時候就初始化(賦值)
(2)常量的名字所有大寫(建議)
(3)常量的命名要有意義。
語法:const Type tag = value;
枚舉的使用
枚舉的做用:1.能夠表示一組描述的名稱,還能夠有對應的「整數值」(默認從0開始)
2.定義一組有限制,方便咱們使用(個數不要太多)
枚舉的語法:
[public] enum 枚舉名
{
值1,
值2,
值3...... //最後的","可加可不加
}
1 public enum Gender 2 { 3 Male,Female 4 } 5 6 static void main(string[] args) 7 { 8 Gender gender=Gender.Maie; //定義枚舉類型 9 Conssole.WriteLine(gender); 10 }
補充:若要得到int類型,(int)gender;支持顯示強制轉換,枚舉類型和int類型是兼容的。
public:訪問修飾符,公開的,哪裏均可以訪問
枚舉名:符合Pascal命名規範。
將枚舉聲明在命名空間下,類的上面。
將enum類型強制轉換成string類型
全部的類型都能轉換成string類型,調用ToString()方法去轉換。
比較麻煩的是將string類型轉換成enum類型
這裏先介紹三種轉換的方法
(1)Convert.ToType()
(2)Type.TryParse()
(3)Type.Parse()
調用Parse()方法的目的就是爲了讓他幫助咱們將一個字符串轉換成對應的枚舉類型。
語法:(要轉換的枚舉類型)Enum.Parse(Typeof(要轉換的枚舉類型),「要轉的字符串」);
舉例以下
1 string s = "0"; 2 QQState state = (QQState)Enum.Parse(Typeof(QQstate),s);
因此咱們能夠獲得一下一條結論:
枚舉類型默認和int類型相互兼容,因此能夠經過強制類型轉換語法轉化。enum和string亦可。若是轉換的字符串是數字,就算
枚舉中沒有,也不會拋異常。若是轉換的是字符串文本,若是枚舉中沒有,則會拋異常。
練習:提示用戶選擇一個在線狀態,接受,並將用戶輸入轉換成枚舉類型,打印到控制檯中。
1 Console.WriteLine("請選擇您的QQ在線狀態 1--OnLine 2--OffLine 3--Leave 4--Busy 5--QMe"); 2 string input = Console.ReadLine(); 3 4 switch(input) 5 { 6 case "1":QQState s1 = (QQState )Enum.Parse(Typeof(QQState),input); 7 Console.WriteLine("您選擇的在線狀態是{0}",s1); 8 break; 9 10 case "2":QQState s2 = (QQState )Enum.Parse(Typeof(QQState),input); 11 Console.WriteLine("您選擇的在線狀態是{0}",s2); 12 break; 13 14 case "3":QQState s3 = (QQState )Enum.Parse(Typeof(QQState),input); 15 Console.WriteLine("您選擇的在線狀態是{0}",s3); 16 break; 17 18 case "4":QQState s4 = (QQState )Enum.Parse(Typeof(QQState),input); 19 Console.WriteLine("您選擇的在線狀態是{0}",s4); 20 break; 21 22 case "5":QQState s5 = (QQState )Enum.Parse(Typeof(QQState),input); 23 Console.WriteLine("您選擇的在線狀態是{0}",s5); 24 break; 25 } 26 Console.Readkey();
C#中經常使用的運算符和數據轉換
(1)賦值運算符「=」
(2)算數運算符:+ - * / % ++ --
其中要說明一點%適用於全部值類型,且結果不必定爲整數。
自動類型轉換
1.兩種類型必須是值類型(int和double/foalt)
2.目標類型取值範圍必須大於要轉換的類型,例如double和int
顯示類型轉換的幾種方法:
(1)類型直接轉換(值類型之間)
(2)Parse轉換(string--->值類型)
(3)Convert萬能轉換器(任意類型之間)
須要指出的是object類型的轉換方法,須要一步一步轉換,不能一步到位。
例如: object a = 10.25;
int result = (int)(double)a;
string--->值類型:對於Parse()方法來講要求字符串的格式必須符合目標類型的有效形式。
例如:int a = int.Parse("20.5")這樣是會拋異常的。
避免上一個問題的異常就是使用Convert()方法。
下面介紹一種特殊狀況:
若是小數部分爲0.5,整數部分若爲偶數保留,舍掉小數部分,若爲奇數,則進一位。
最後咱們講一講關係運算符和邏輯運算符
關係運算符是用來描述兩個事物之間的關係的
關係運算符:> < <= >= == !=
邏輯運算符:&& || !