01-C#入門(函數一)


只有在動手寫代碼的時候,才能真正理解到代碼的邏輯思想,所以,開始寫代碼吧。

函數的意義:降低相同功能的代碼重復編寫,提高重復代碼的維護效率。

  • 函數

一個文件由命令空間(namespace)、類(class)、函數(function)的結構組成。函數放在Class類中,使用static void HelloFunction() { }語句,函數命名一般開頭字母用大寫,調用函數時必須是函數名+括號:HelloFunction();。

void表示函數無返回值,如需返回值,則將void替換為返回的值類型,使用return結束函數並返回值給調用代碼。另外,return可存在於void聲明的函數中,例如:return;(用來退出函數,不能有值)。

參數指定:int i, string myStr,還可以使用params指定參數數組,必須放在參數列表的最后位置。參數傳遞分值傳遞和引用傳遞,引用傳遞(聲明、調用參數時添加ref關鍵字),函數對參數的修改會修改傳入變量本身的值,例如:

        static void  DoubleInt(ref int refInt)
        {
            refInt *= 2;
            Console.WriteLine("ref 函數內的值:{0}", refInt);
        }
        static void Main(string[] args)
        {
            //ref 引用傳遞,由於將修改參數值,引用的參數有兩個條件:1)不能是常量 2)必須初始化;
            int refVal = 10;
            Console.WriteLine("ref 前變量的值:{0}", refVal);
            DoubleInt(ref refVal);
            Console.WriteLine("ref 參數值結果:{0}", refVal);
        }
  • 變量的作用域

不同函數中聲明的變量不能在其它函數中直接訪問,需使用參數的方式。另外,可在類中聲明變量,一樣使用static的方式,如與函數內的變量重名,需使用Program(類名).myStr訪問,如直接使用myStr會屏蔽全局變量。

還需要注意的是語句塊也會影響變量的作用域,例如for(int i = 1),這個i只能在for循環中(嵌套其中的語句)使用,跳出循環后,變量i就不能使用了。

對全局變量的使用,書上持保留意見,建議在函數間使用參數傳遞的方式,這樣可以比較直觀地看出變量的變化。

  • main()入口函數

執行C#程序等同於執行main()函數,main()函數執行完畢,程序執行過程就結束了。main函數可以返回int(替換void)值,表示程序如何退出,后面看看怎么用的。另外,最有意思的就是參數string[] args,用來做DOS程序很直觀:

        static void Main(string[] args)
        {
            Console.WriteLine("參數長度:{0}", args.Length);
            foreach (string myArg in args)
            {
                Console.WriteLine("*) {0}", myArg);
            }
        }

可通過配置項目屬性:調試 - 啟動選項 - 命令行參數,給args賦值,參數以空格隔開,如字符串有空格,則用引號包圍起來。可以試試在DOS下使用,像DOS命令一樣增加參數。

  • 結構函數

可以在結構中聲明函數,聲明時不使用static,而不是public,應該是可訪問性方面的需要(書中提到后面會詳述):

    struct customerName
    {
        public string firstName, lastName;
        public string cusName()
        {
            return firstName + lastName;
        }
    }

使用時就可以這樣:customerName.firstName = "水手"、customerName.cusName(),有點面向對象的意思了,呵呵。

  • 結語

以前學習的時候,可能在知道命令行程序“原來是這樣做出來的”,然后就沒心情學下去了,然后就自以為是地去折騰命令行程序,結果又做不出個所以然來,慢慢地就失去了學習的興趣,結果就:半途而廢。

SO,現在要淡定~~~雖然知道了怎么做,但是要想做出一個真正能用的工具,不是學點新知識就能行的,做出真正可以用的工具是一個過程,一個不斷迭代的過程。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM