首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 銳利體驗 (六) (1):方法分類與參數傳遞基礎

     編輯:關於C語言

第六講:方法

方法又稱成員函式,集中體現類別或物件行為。分靜態方法(僅操作靜態欄位)與實例方法(可操作實例與靜態欄位,後者不推薦但特殊情況有用)。具五種存取修飾詞:public、protected、internal、protected internal、private。

方法參數四種傳遞類型

類型修飾詞行為
傳值無傳遞參數副本,方法內修改不影響原值
傳址ref傳遞記憶體位址,方法內修改影響原值
輸出out不需初始化,方法內必須指派值
陣列params傳遞可變數量參數陣列

範例:Swap 函式對比

using System;
class Test
{
    static void Swap(ref int x, ref int y) { int t=x; x=y; y=t; }
    static void Swap(int x, int y) { int t=x; x=y; y=t; }
    static void Main()
    {
        int i=1, j=2;
        Swap(ref i, ref j);
        Console.WriteLine("i={0}, j={1}", i, j); // 2, 1
        Swap(i, j);
        Console.WriteLine("i={0}, j={1}", i, j); // 2, 1 (未改變)
    }
}

傳址參數呼叫時宣告與調用皆需加 ref。

傳值參數的特殊情況

「傳值不改變參數值」在某些情況下錯誤。參考型別傳值時,修改其欄位會影響原物件:

class Element { public int Number = 10; }
static void Change(Element s) { s.Number = 100; }
// 輸出:10 -> 100
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved