變量的作用:為了更好的管理內存數據,不同類型的數據存放在不同的內存塊中。
變量的特點:不同數據類型占用的存儲空間大小不一樣。
變量的意義:內存地址是一串十六進制數,非常不好記憶,通過變量可以快速找到數據。
1.要確定存儲的數據的類型。
2.給這塊空間起一個有意義的名字,方便我們使用空間中的內容。
存儲變量的語法:
變量類型 tagName;
tagName = value;
C#中數據類型(數值類型/引用類型):
1)整數類型int:只能存儲整數,不能存儲小數。
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,整數部分若為偶數保留,舍掉小數部分,若為奇數,則進一位。
最后我們講一講關系運算符和邏輯運算符
關系運算符是用來描述兩個事物之間的關系的
關系運算符:> < <= >= == !=
邏輯運算符:&& || !