3.2自定义方法
方法是類的一種行為,方會使我們的代碼容易修改,方便閱讀,實現封裝和重用。比如前面使用的很多.net定義好的類的方法,當然我們也可以自定義方法。
3.2.1定義方法
語法:
訪問修飾符 返回類型 方法名(參數列表)
{
//方法的主體
}
1.訪問修飾符:就是可訪問的級別,若變量或方法聲明為public,表示其他類可以訪問,若聲明為private,則只能在類中使用。
2.方法的返回類型:方法是供人調用的,調用后可以返回一個值,這個返回值的數據類型就是方法的返回類型,可以是int,float,double,bool,string等,若方法不返回任何值就使用void。
3.方法名:方法的名字應該有明確的含義,便于代碼的閱讀。
規范:方法名要有實際的含義,一般使用Pascal命名法即組成方法名的單詞直接相連,每個單詞首字母大寫,如:WriteLine(),ReadLine()。
4.參數列表:向方法中傳遞參數,這些參數就組成了參數列表,沒有參數就不用參數列表,參數列表中每個參數都是“類型 參數名”的形式,各參數之間用逗號隔開。
5.方法的主體:方法實現某功能所執行的代碼,編寫自己的方法時應該先寫方法的聲明,包括訪問修飾符,返回類型,方法名,參數列表,然后再寫方法的主體。
3.2.2向方法中傳遞參數
1.值傳遞
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace helloWorld 8 { 9 /// <summary> 10 /// 演示使用方法計算稅后工資 11 /// </summary> 12 class Program 13 { 14 static void Main(string[] args) 15 { 16 int pay;//稅前工資 17 float taxRate = 0.1f;//稅率 18 float afterTax;//稅后工資 19 int standard = 1600;//計稅基準金額 20 Console.WriteLine("please input the pay before tax: "); 21 pay = int.Parse(Console.ReadLine()); 22 //調用方法計算稅后工資 23 afterTax = GetPay(pay,taxRate,standard); 24 Console.WriteLine("pay before tax:{0},pay after tax:{1}",pay,afterTax); 25 Console.ReadLine(); 26 } 27 28 //此方法根據稅前工資計算稅后工資 29 private static float GetPay(int pay, float taxRate,int standard) 30 { 31 float afterTax;//計稅后的工資 32 if (pay <= standard)//低于1600不交稅 33 { 34 afterTax = pay; 35 } 36 else 37 { 38 afterTax=pay-(pay-1600)*taxRate; 39 } 40 return afterTax; 41 } 42 } 43 } View Codestatic(靜態的),是c#中的一個關鍵字,用它修飾的方法叫靜態方法,靜態方法的調用是通過‘類名.方法名',比如WriteLine()就是Console類的一個靜態方法,我們從來沒有通過new創建Console類的對象,而是直接Console.WriteLine()直接調用。上例中GetPay()與Main()在同一個類,所以可以不需要類名直接調用GetPay()。
?使用下面的代碼來實現交換兩個數
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace helloWorld 8 { 9 /// <summary> 10 /// 演示使用方法計算稅后工資 11 /// </summary> 12 class Program 13 { 14 static void Main(string[] args) 15 { 16 int num1=5, num2=10;//兩個數字 17 Console.WriteLine("before swap the num is:{0} and {1}",num1,num2); 18 Swap(num1,num2); 19 Console.WriteLine("before swap the num is:{0} and {1}", num1, num2); 20 Console.ReadLine(); 21 } 22 23 //此方法交換數字 24 private static void Swap(int num1, int num2) 25 { 26 int temp;//中間變量 27 temp = num1; 28 num1 = num2; 29 num2 = temp; 30 } 31 } 32 } View Code運行結果如下:
兩個數的值并沒有交換,why?因為我們在給方法傳遞參數時使用了值傳遞,就是只把參數的值傳到了方法里,若在方法中對參數的值進行修改,在方法調用完后,參數仍然是原來的值。有沒有什么方式能夠在方法調用后保存對參數的修改呢?這就需要按引用傳遞參數。
2.按引用傳遞參數
要想使參數按引用傳遞,需要使用ref關鍵字修飾參數
轉載于:https://www.cnblogs.com/LJLLY/p/9897682.html
總結
- 上一篇: 2018-2019-1 20165203
- 下一篇: 织梦其他模型使用联动类型地区联动