• 當前位置:首頁 > IT技術 > Windows編程 > 正文

    C#:基本語法總結
    2021-09-03 18:16:30

    PS:最近學了C#,很多地方和原理和C以及C++是類似的,因此基本語法我只總結了一些相對于不同的定義方式以及一些新的概念。

    這里也不再介紹相關編譯環境和工程的建立了。

    一、Hello World

    和其他語言一樣,都是從Hello World著手的。

    代碼:

    Console.Write("Hello World!");//不會換行
    Console.WriteLine("Hello World!");//會自動換行
    Console.ReadKey();//相當于在這里中斷

    二、三種注釋方法

    //:多用于給變量注釋

    /*? ?*/:多用于大段文本注釋

    ///:多用于給類和方法注釋

    三、變量

    變量的概念、語法、使用規則和命名規則這里不在介紹了,和C以及C++幾乎是一樣的。

    命名規范:駝峰命名法

    要求變量名首單詞的首字母小寫,其余每個單詞的首字母大寫。

    例如:?time, playerName, vipLevel,myNameIsMonkey

    基本類型和C也差不多,但是區別在于:

    float類型:單精度小數類型, 既能存儲整數,又能存儲小數,值后面需要加上一個 f。

    string類型:和C++幾乎一樣。

    四、運算符合表達式(和C、C++一樣,不再贅述)

    五、占位符

    用途:讓字符串與變量連接更舒服。

    1.語法結構
    先挖坑{0},{1},{2}, 再填蘿卜(變量)進坑。

    2.注意事項
    ①你挖了幾個坑,就應該填幾個蘿卜;
    如果你多填了蘿卜,沒效果;
    如果你少填了蘿卜,拋異常。
    ②輸出順序;
    按照挖坑的順序輸出,另外蘿卜是有位置順序的。

    例如:

    Console.WriteLine("我的名字:{0},我今年:{1}", name, age);

    六、用戶輸入與轉義符

    用戶輸入:Console.ReadLine();

    轉義符:

    :表示換號
    ”:表示一個英文半角的雙引號
    :表示一個 tab 鍵的大空格
    :表示一個 BackSpace 退格鍵,會把前面的一個字符刪掉
    \:表示一個
    @:用在字符串的前面,有兩種用途。
    ①取消“”在字符串中的轉義作用,使其單純的就表示一個斜線[多用于路徑]
    ②將字符串按照原格式輸出

    七、類型轉換

    強制類型轉換和隱式轉換不再贅述。

    Convert 類型轉換

    兩個變量的類型如果相兼容,可以使用自動類型轉換或者強制類型轉換。如果兩個變量的類型不兼容,比如 string 和 int,string 和 double。這個時候我們可以用 Convert 進行轉換。

    注意: 使用 Convert 進行類型轉換,也需要滿足一個條件,條件就是“面子上要過得去”

    Convert.ToInt32();
    Convert.ToDouble();

    八、分支結構之 if和switch語句

    不再贅述,和C、C++一樣

    ?九、循環語句

    不再贅述,和C、C++一樣

    十、數組的定義及遍歷(這里只介紹不同之處)

    定義及初始化:

    數據類型[] 數組名 = new 數據類型[數組長度];
    數組初始化完成后,各種類型的數組的默認值:
    int[], 元素的值默認都是 0;
    float[], 元素的值默認都是 0;
    double[],元素的值默認都是 0.0;
    string[], 元素的值默認都是 null;
    bool[], 元素的值默認都是 false;

    for的遍歷方式和C一樣,這里介紹C#獨有的:foreach遍歷

    foreach(數組數據類型 臨時變量 in 數組名)
    {
    Console.WriteLine(臨時變量);
    }

    十一、數組之內存結構

    1.值類型與引用類型
    值類型
    int,float,double,bool,char
    內存:值類型的值存儲在內存的
    演示:int 類型變量間傳值 int a = 10; int b = a;
    注意:這個時候單獨修改 b 的值,a 的值不會發生改變,這種傳遞叫做值傳遞。
    這個時候變量之間的傳遞就是拷貝一個具體的值給對方。

    引用類型
    數組,字符串
    內存:引用類型的值存儲在內存的
    演示:int 數組類型變量間傳值 int[] intA = new int[]{00,111,222,444};
    int[] intB = intA;
    注意:這個時候單獨修改 intB 中元素的值,intA 的值是會發生改變,這種傳遞
    叫做引用傳遞。
    這個時候變量之間的傳遞就是拷貝一個地址給對方。

    2.數組的內存結構
    數組在內存中是一塊連續的存儲空間存儲的。
    最低的地址對應第一個元素,最高的地址對應最后一個元素。

    十二、數組之二維數組

    1.二維數組基本語法
    1.聲明與初始化
    聲 明:數據類型[,] 數組名;
    初始化:數組名 = new 數據類型[行數,列數];
    聲明,初始化二合一格式:
    數據類型[,] 數組名 = new 數據類型[行數,列數];
    2.賦值與取值
    賦值:數組名[下標,下標] = 值;
    取值:數組名[下標,下標];

    3.聲明初始化賦值三合一:
    數據類型[,] 數組名 = new 數據類型[,] { {0,0,0,0,0,0,0,0,0,0},{1,1,1,1,1,1,1,1,1,1} };

    2.二維數組的遍歷
    for 循環嵌套
    數組名.GetLength(軸向下標); //可以獲取某個軸向的元素個數。

    int[,] a = new int[3,4] {{0,0,0,0},{1,1,1,1},{2,2,2,2} };
                for (int i = 0; i < a.GetLength(0); i++)
                {
                    for(int j = 0;j < a.GetLength(1); j++)
                    {
                        Console.WriteLine(a[i, j]);
                    }
                }
            }

    十三、函數

    這里概念不再贅述了。。。

    函數的聲明與調用

    1.Pascal 命名法
    帕斯卡命名規范,要求每個單詞的首字母都要大寫,其余字母小寫。
    用途:多用于給類或者函數(方法)命名。
    例如:ReadLine,ReadKey,ToDouble,ToInt32

    2.函數的聲明(語法)

    static 返回值類型 函數名([參數列表])
    {
    函數代碼體;
    }

    說明:
    static:靜態標識符;
    返回值類型:如果不需要返回值就寫 void,就是無返回值的意思;
    函數名:當前功能函數的名字,要符合 Pascal 命名規范;
    參數列表:如果不需要參數,小括號中可以直接留空;
    如果需要參數,要以:參數類型 參數名 的形式書寫;

    函數的調用:函數名([實際參數]);

    注意:如果函數只聲明不調用,則函數中的代碼不會被執行。

    函數的參數與返回值:不再贅述。

    函數重載

    概念:函數的名稱相同,但是參數列表不同。調用該函數的時候,會根據不用的參數,自動選擇合適的函數重載形式。

    參數不同的情況
    ①如果參數的個數相同,那么參數的類型就不能相同;
    ②如果參數的類型相同,那么參數的個數就不能相同。
    注意:函數的返回值和重載沒有關系

    ref參數

    1.作用
    將一個變量傳入一個函數中進行“處理”,“處理”完成后,再將“處理”后的值帶出函數。

    2.要求
    函數外必須為變量賦值,而函數內可以不賦值。

    3.語法
    形參和實參前面都要加 ref 關鍵字。
    例如:Add(ref num); static void Add(ref int num);

    out 參數

    一個函數中如果返回多個不同類型的值,就需要用到 out 參數。

    2.要求
    函數外可以不為變量賦值,而函數內必須為其賦值。

    3.語法
    形參和實參前面都要加 out 關鍵字。
    例如:

    Number(a,b, out max, out min);
    static void Number(int a, int b, out int max, out int min);

    ?

    本文摘自 :https://blog.51cto.com/u

    開通會員,享受整站包年服務
    国产呦精品一区二区三区网站|久久www免费人咸|精品无码人妻一区二区|久99久热只有精品国产15|中文字幕亚洲无线码