006 復雜的數據類型&函數(方法)
2016-01-16
1、變量類型
int double string char bool decimal
變量的使用規則:先聲明再賦值最后使用
int number;
number=10;
number=20;
Console.WriteLine(number);
2、Camel Pascal
3、運算符
賦值運算符:=
復合賦值運算符:+= -= *= /= %= sum+=age; sum=sum+age;
算數運算符: + - * / % ++ --
關系運算符: > < >= <= == !=
邏輯運算符: && || !
4、c#中的語法結構
分支結構:
if if-else
選擇結構:
while do-while for
5、常量
聲明的常量的語法:
const 變量類型 變量名=值;
什么時候會用到常量?
6、枚舉
語法:
[public] enum 枚舉名
{
值1,
值2,
值3,
........
}
public:訪問修飾符。公開的公共的,哪都可以訪問。
enum:關鍵字,聲明枚舉的關鍵字
枚舉名:要符合Pascal命名規范
將枚舉聲明到命名空間的下面,類的外面,表示這個命名空間下,所有的類都可以使用這個枚舉。
枚舉就是一個變量類型 ,int--double string decimal.
只是枚舉聲明、賦值、使用的方式跟那些普通的變量類型不一樣。
我們可以將一個枚舉類型的變量跟int類型和string類型互相轉換。
枚舉類型默認是跟int類型相互兼容的,所以可以通過強制類型轉換的語法互相轉換。
當轉換一個枚舉中沒有的值的時候,不會拋異常,而是直接將數字顯示出來。
枚舉同樣也可以跟string類型互相轉換,如果將枚舉類型轉換成string類型,則直接調用ToString().
如果將字符串轉換成枚舉類型則需要下面這樣一行代碼:
(要轉換的枚舉類型)Enum.Parse(typeof(要轉換的枚舉類型),"要轉換的字符串");
如果轉換的字符串是數字,則就算枚舉中沒有,也會不會拋異常。
如果轉換的字符串是文本,如果枚舉中沒有,則會拋出異常。
7、所有的類型都能夠轉換成string類型,調用ToString()。
8、結構
可以幫助我們一次性聲明多個不同類型的變量。
語法:
[public] struct 結構名
{
成員;//字段
}
變量在程序運行期間只能存儲一個值,而字段可以存儲多個值。
9、數組
一次性存儲多個相同類型的變量。
語法:
數組類型[] 數組名=new 數組類型[數組長度];
***數組的長度一旦固定了,就不能再被改變了
10、冒泡排序:就是將一個數組中的元素按照從大到小或者從小到大的順序進行排列。
int[] nums={9,8,7,6,5,4,3,2,1,0}; 0 1 2 3 4 5 6 7 8 9
第一趟比較:8 7 6 5 4 3 2 1 0 9 交換了9次 i=0 j=nums.Length-1-i
第二趟比較:7 6 5 4 3 2 1 0 8 9 交換了8次 i=1 j=nums.Length-1-i
第三趟比較:6 5 4 3 2 1 0 7 8 9 交換了7次 i=2 j=nums.Length-1-i
第四趟比較:5 4 3 2 1 0 6 7 8 9 交換了6次 i=3 j=nums.Length-1-i
第五趟比較:4 3 2 1 0 5 6 7 8 9 交換了5次
第六趟比較:3 2 1 0 4 5 6 7 8 9 交換了4次
第七趟比較:2 1 0 3 4 5 6 7 8 9 交換了3次
第八趟比較:1 0 2 3 4 5 6 7 8 9 交換了2次
第九趟比較:0 1 2 3 4 5 6 7 8 9 交換了1次
for(int i=0;i<number.Length-1;i++)
{
for(int j=0;j<nums.Length-1-i;j++)
{
if(nums[j]>nums[j+1])
{
int temp=nums[j];
nums[j]=nums[j+1];
nums[j+1]=temp;
}
}
}
11、方法
函數就是將一堆代碼進行重用的一種機制。
函數的語法:
[public] static 返回值類型 方法名([參數列表])
{
方法體;
}
public:訪問修飾符,公開的,公共的,哪都可以訪問。
static:靜態的
返回值類型:如果不需要寫返回值,寫void
方法名:Pascal 每個單詞的首字母都大些。其余字母小寫
參數列表:完成這個方法所必須要提供給這個方法的條件。如果沒有參數,小括號也不能省略。
方法寫好后,如果想要被執行,必須要在Main()函數中調用。
方法的調用語法:
類名.方法名([參數]);
***在某些情況下,類名是可以省略的,如果你寫的方法跟Main()函數同在一個類中,這個時候,
類名可以省略。
12、return
1、在方法中返回要返回的值。
2、立即結束本次方法。
13、我們在Main()函數中,調用Test()函數,我們管Main()函數稱之為調用者,
管Test()函數稱之為被調用者。
如果被調用者想要得到調用者的值:
1)、傳遞參數。
2)、使用靜態字段來模擬全局變量。
如果調用者想要得到被調用者的值:返回值
14、不管是實參還是形參,都是在內存中開辟了空間的。
15、方法的功能一定要單一。
GetMax(int n1,int n2)
方法中最忌諱的就是出現提示用戶輸入的字眼。
16、out、ref、params
1)、out參數。
如果你在一個方法中,返回多個相同類型的值的時候,可以考慮返回一個數組。
但是,如果返回多個不同類型的值的時候,返回數組就不行了,那么這個時候,
我們可以考慮使用out參數。
out參數就側重于在一個方法中可以返回多個不同類型的值。
2)、ref參數
能夠將一個變量帶入一個方法中進行改變,改變完成后,再講改變后的值帶出方法。
ref參數要求在方法外必須為其賦值,而方法內可以不賦值。
3)、params可變參數
將實參列表中跟可變參數數組類型一致的元素都當做數組的元素去處理。
params可變參數必須是形參列表中的最后一個元素。
17、方法的重載
概念:方法的重載指的就是方法的名稱相同給,但是參數不同。
參數不同,分為兩種情況
1)、如果參數的個數相同,那么參數的類型就不能相同。
2)、如果參數的類型相同,那么參數的個數就不能相同。
***方法的重載跟返回值沒有關系。
18、方法的遞歸
方法自己調用自己。
找出一個文件夾中所有的文件。
浙公網安備 33010602011771號