<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [參考:c#說明文件中方法的使用](https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/classes-and-structs/methods) # 方法及方法的參數 ![](https://box.kancloud.cn/2e8a27476b5deafd96d18168be6450d0_504x266.png) > 看到 `void` 類似字樣修飾符的,就知道這個是方法了。 類中包括屬性和方法。其實方法就是一個函數,便于在創建對象后直接用“.”調用。方法聲明如下: ``` public int Student() //public 是權限修飾符;int 表示返回值類型。如果是 void 則是無需返回一個值;Student()為自己取的方法名。 { //方法的主體 return 0;//因為定義為int類型,所以需要加return來回傳返回值。或return “”; } ``` 調用時只需要“對象名.方法名”也就是對象名后面加一個點,就直接可以跳出方法名了。 # params 方法的參數個數不確定時,可使用params[] params 其實是一個一維數組。 - 一個方法最多有一個 params[] 參數; - 只能在一維數組上引用; - 不能使用ref、out修飾 params[] 參數。 ``` private int Add(params int[ ] x) // 如果知道參數個數,可寫成private void Add(int i, int j, int k, int m ... ) { } Program pro = new Program(); //創建默認空參數的對象 int result1 = pro.Add (20); int result2 = pro.Add(20, 30, 40, 50); console.writeline(result1); console.writeline(result2); console.readline(); ``` ``` class Program() { int Add(params int[] x) //Add是一個方法的名字,而不是一個數組的名字,所以括號內的x,才是數組的名字,真實寫法應該是:一維數組int x[],所以后續遍歷數組時,寫法應該是int x[i] { int result = 0; for(int i=0; i<x.Length; i++) { result += x[i]; //這里不是result += i } return result; } } static void Main() { Program pro = new Program(); int result = pro.Add(20, 35); // 直接調用即可,無需其他語句。 console.writeline(result); console.readline(); } ``` # ref 可不先初始化——形參和實參 如:交換兩個數的值 按引用進行傳遞:ref。必須初始化(與局部變量是一樣的) int num1前面加ref ``` static void Main() { int num1 = 98, num2 = 368; console.writeline("before exchange, the nums are: {0}, {1}", num1, num2 ); Swap(num1, num2); console.writeline("after enchange, the nums are: {0}, {1}", num1, num2) console.readline(); } //以下語句為用于交換兩個數的swap方法 static void Swap(num1, num2) { int temp; temp = num1; num1 = num2; num2 = temp; } ``` 上述代碼并不會交換數值,因為swap()括號中的為形式參數。{}中的為實際參數。而對實參的修改并不會影響到形參的結果。所以按上述代碼執行后,交換前后是一樣的。 這時候需要在形參前加ref ``` static void Main() { int num1 = 98, num = 368; // 對Swap中的num1,num2 進行初始化 console.writeline("before exchange, the nums are: {0}, {1}", num1, num2); Swap(ref num1, ref num2); // 記得加 ref console.writeline("after exchange, the nums are: {0}, {1}", num1, num2); consoel.readline(); } static void Swap(ref int num1, ref int num2) // 記得加 ref { int temp; temp = num1; num1 = num2; num2 = tepm; } ``` 按值傳遞 vs 按引用傳遞 ![](https://box.kancloud.cn/e5aaae496d8f37a7d02ff95aa7e0fbeb_615x271.png) # out 想返回多個值,或使用未經初始化的變量? out ![](https://box.kancloud.cn/5b0fd74ee348494e24a1a7c807ef1333_371x131.png) ![](https://box.kancloud.cn/a6984b10c1f2b3b5611eb63faff49de9_250x99.png) ``` class Program { void Add2 (int a, int b, out int c) //如果此處未寫out,則必須對c賦值 { c = a+b; } static void Main() { Program pro2 = new Program(); int a =2, b = 3, out c; pro.Add2(a, b, out c); //如果直接寫“console.writeline(c)”,則會提示未賦值,此時加入這一行,調用Add方法,并且使用 out 修飾變量,就不會出錯。 console.writeline(c); console.readline(); } } ``` 也可以返回多個值: 比如想知道面試結果,以及是否被錄用的原因: ``` void Search (int flag, out int result, out string reason) { if (flag == 0) { result = "錄用"; reason = "技術能力好"; } else { result = "不錄用"; reason = "技術能力不行"; } } ``` 此時傳回的就是多個返回值。 # 方法重載 要調用方法時,如果只是值類型不同,或者值個數不同,無需重新定義多個方法,而可以直接使用相同的方法: ``` class Add1 { //方法的類型不同 public sring Sum1(string a, string b, string c) {...} public int Sum1(int a, int b, int c) {...} //這里兩個方法的名字都叫Sum1,同名,即視為重載 } class Add2 { //方法的參數個數不同 public int Sum2(int a, int b, int c) {...} public int Sum2(int a, int b, int c, int d) {...} } ``` ![](https://box.kancloud.cn/972239d1de6c041eae21094a3c023796_457x242.png) # 類的靜態成員 ## static 如上述例子,如果在`int Sum(int a, int b, int c)`前加`static`關鍵字,則變成靜態類。 沒加static前,是實例方法,所以在調用的時候需要 `Program pro = new Program() pro.Sum(20, 30, 40)` 來創建對象,并調用方法。 如果把方法創建成靜態的,那就可以直接調用類型的名字來調用 ``` class Program { static int Sum(int a, int b, int c) { ... } Program pro = new Program(); int result = Program.Sum(20, 30, 50); //此處Program也可以不寫,但不能寫成program.Sum(20, 30, 40),否則提示錯誤 int result = Sum(22, 33, 44); //不寫Program也可以。 } ``` ![](https://ws4.sinaimg.cn/large/006tKfTcly1fru5wz3sxpj30hs07i0tp.jpg) 無法使用實例引用來訪問成員。。。請該用類型名來限定它。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看