程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#基礎知識 >> C#基礎總結

C#基礎總結

編輯:C#基礎知識
那些年,我們一起瘋狂的C#

那些年,我們一起瘋狂的C#語言------總結

望大家認真看看哦,有驚喜哦!!!

第一章                   第一個C#程序

 

大概在2000年,微軟推出了一種革命性的產品--.NET

 

目標:任何人,在任何地方,使用任何終端設備,都可以訪問微軟提供的服務。

 

.net Framework:要想讓我們自己寫的C#應用可以運行在Good Friend的Computer上,必須有.net Framework

 

IDE(Itergrated Developer Environment)集成開發環境Linux:裝XWindow:傻X

解析:,net是一種平台,這種平台上可以跑多種語言,例如,vb,j#,C#c#只是一種語言

第一個C#程序

   1. 使用vs創建C#程序的步驟:

新建項目(project)→生成可執行文件(build)→運行(run)

 2.解決方案資源管理器:包括解決方案名稱、項目名稱、編譯後的

  可執行文件和源文件(以.cs為擴展名)等。

3.程序結構:命名空間中包含類,類中包含Main方法

 

   4.C#的main方法

 

    注意點:Main方法首字母大寫

 

      返回值可以為void或者int

 

    命令行參數是可選的

 

             四種Main()方法:

 

      static void Main(){}

 

      static void Main(){string[] args}

 

      static int Main(){}

 

      static int Main(){string[] args}

 

          5.C#中變量

 

      c#中常用數據類型:整型 int,浮點型float,字符串string

 

      布爾型bool

 

    語法:數據類型變量名稱;

 

          c#中變量的命名規則有哪些?

 

          1,組成:英文字母、數字、“_”

 

           2,開頭:英文字母、“_”

 

          3,不能使用關鍵字;

 

       6.C#中的常量

 

什麼是常量

 

  變量:可以變化的量。

 

Int num=5;

 

Num=7;

 

  常量;一旦定義,其值不能再後續代碼中再次修改。

 

解析:PI

 

Int num=5;

 

05.海量代碼折疊

 

快捷鍵是Ctrl+K+S:#region

 const 數據類型常量名稱=值;

 注意點:常量不能被重新賦值

  1.  常量必須在聲明時初始化

 

 常量命名規則:01,有意義02,均大寫03,長度宜長

 

什麼時候使用常量:01,多處用到02,其值不易理解03,其值不變

 

      7.輸入輸出

 

         向控制台輸出:

 

          Console.WriteLine()方法--輸出後換行

 

          Console.Write()方法--輸出後不換行

 

          Console.WriteLine("格式字符串",變量列表);

 

          例如:Console.WriteLine("我的課程名稱是:{0}",course);

 

          {0}:占位符

 

          依次使用{0}、{1}、{2}與變量列表中的變量對應

 

          可以在字符中使用\n、\t來控制換行或制表

          從控制台讀入:

          Console.ReadLine();

 

          返回值為string類型

c#中的方法         

               方法是類的行為,便於修改、增加可讀性、可重用、封裝等。

 

               C#中方法的定義形式:

 

              訪問修飾符返回類型方法名(參數列表)

              {

                  //方法的主體

              }

              訪問修飾符:如public、private等。

              返回類型:如int ,double ,string,void等。

        方法名:命名規范:單詞首字母大寫--Pascal命名法

   類和對象

           類可以生成對象,類是對象的抽象

            成員變量也叫字段

    c#中的注釋

 

       單行注釋://

 

       多行注釋:/**/

 

       文檔注釋:/**

 

             */

 

    C#中的region

 

       如何讓自己的海量代碼更可讀?

 

       region可以使代碼折疊

 

    VS中調試技巧

 

        斷點:通知調試器應在某點上中段應用程序並暫停執行

 

        監視窗口:計算變量和表達式的值

 

   調試常用快捷鍵

 

         F5--開始調試

 

         Shift+F5--停止調試

 

         F9--設置或刪除斷點

 

         F10--逐過程調試

 

         F11--逐語句

第2章           c#語法快速熱身

c#javaswitch語句用法有什麼不同?

 

     01.java中switch後的表達式取值只能為(int/char),

 

     但是c#中取值可以是(int/char/string)

 

     02.java中case後可以沒有break語句,但是在c#則不行 

 

java中如何定義數組?

 

      int[] nums=new int[]{1,2,3};

 

c#if條件結構

 

      C#與java中的條件判斷語句對比

 

      條件判斷語句       java        c#

 

      if               if(){...}二者完全相同

 

      if...else...     二者完全相同

 

   注意:java和c#中switch用法有以下兩點不同:

 

      01.java中switch後的表達式取值只能為(int/char),

 

     但是c#中取值可以是(int/char/string)

 

     02.java中case後可以沒有break語句,但是在c#則不行

 

     多個可以case 可以共用break語句

 

    c#switch小結

 

        條件判斷的表達式類型:整型、字符型或字符串

 

        break語句的要求:

 

          01,每個case都要有break

 

          02,default也要有break

 

          03,特殊情況:case中沒有其他語句時,不需要break語句

 

 

   c#中的一維數組

 

      01.C#中數組定義語法:

 

      數據類型[] 數組名;

 

      string[] arr1;

 

      02.如何設置數組大小?

 

      使用new設置大小:創建長度為5的整型數組

 

      int[] array=new int[5];

 

      03.數組初始化:

 

      int[ ] arr = new int[5]{0,1,2,3,4};

 

      int[ ] arr = new int[ ]{0,1,2,3,4};   // 省略長度

 

      int[ ] arr = {0,1,2,3,4};                  // 省略new

 

      [5]——方括號中的數字決定數組的長度

 

      {0,1,2,3,4}——大括號中的元素個數決定數組的長度

 

      04.如何獲取數組的長度(數組中元素的個數)

 

       答:數組名.Length

 

      05.如何循環輸出數組中元素?

 

      // 循環輸出數組元素

 

  int[ ] array = new int[5] { 0, 1 ,2, 3, 4};  // 聲明並初始化一維數組

 

考題:

 

         //在C#中和java中如下語句都可以定義一個長度為3的int類型數組

 

         方式一:

 

         int[] arr=new int[]{1,2,3};

 

         方式二:

 

          int[] arr;

 

         arr=new int[]{1,2,3};

 

         //int[] arr=new int[3]{1,2,3;//C#中正確,java中不可以

foreach局限性:當需要改變數組中值的時候會報錯

            for (int i = 0; i < array.Length;i++ )       // 輸出數組中的所有元素

            {

                    Console.WriteLine(array[i]);

            }

 

      06.使用foreach循環遍歷數組元素

 

        foreach循環一般用於遍歷整個集合或數組

 

     語法:foreach (元素類型變量名 in 集合或者數組名)

                          {

                                   // 語句

                          }

 

      07.continue和break語句的使用

 

       continue:結束本次循環,繼續下一次循環

 

       break:結束當前循環

 

       08.二重循環復習

 

       int i, j;            // 循環變量

    // 外層循環控制打印的行數

 

     for (i = 1; i <= 5; i++)

     {

             // 內層循環控制每行打印數字的個數

             for (j = 1; j <= i; j++)

             {

                    Console.Write(j);

             }

 

             Console.WriteLine();

     }

 

 冒泡排序

 

       規則:每次比較相鄰兩數,小的交換到前面,每輪節航速後最大的數交換到最後

 

       用二重循環實現冒泡排序

 

          例如:5(n)個數字存放在一維數組中,如何進行排序

 

          分析:外層循環控制比較多少輪,循環變量i

 

                    內層循環控制每輪比較多少次,循環變量j

 

                    觀察規律,分析i和j的關系,最終得出結論

 

                    i=n-1,j=n-1-i

 

                    代碼框架如下:

 

                    for(i=0;i<n-1;i++)

 

                    {

 

                         for(j=0;j<n-1-i;j++)

 

                         {

 

                            //比較j和j+1位置的元素

 

                            //如果前大後小就交換

 

                         }

 

                    }

 

int[] nums = { 10, 5, 8, 9, 50 };

 

            Console.WriteLine("排序前:");

 

            foreach (int item in nums)

 

            {

                Console.Write(item+"\t");   

            }

            Console.WriteLine("");

 

            //01.核心排序代碼

 

            for (int i = 0; i <4; i++)

            {

 

                for (int j = 0; j <4-i; j++)

 

                {

 

                    if (nums[j]>nums[j+1])

                    {

                        int temp = nums[j];

 

                        nums[j] = nums[j + 1];

 

                        nums[j + 1] = temp;

 

                    }

 

                }

 

            }

 

            Console.WriteLine("排序後:");

 

            foreach (int item in nums)

 

            {

                Console.Write(item + "\t");

            }

            Console.WriteLine("");

 

            Console.ReadKey();

        }

 

    }

冒泡排序速記口訣(升序):  N個數字來排隊

兩兩相比小靠前

外層循環N-1

內層循環N-1-i 

第三章         使用屬性升級MyBank

 訪問修飾符

public:在任何位置都可以訪問

 private:只能在當前類中訪問

 C#中的訪問修飾符

  當類的某些敏感字段只希望類內部使用時,可以使用private訪問

一個類的字段一旦定義成private,其他類訪問不到

 c#中的訪問修飾符:

  public    不受任何限制,訪問級別最高

private   只有類的內部可以使用,訪問級別最低

public class Panda{

   private string brand;

 private int age;

  public int Age

 {

 get { return age; }

 set { age = value; }

 }

 public string Brand

{get { return brand; }

 set { brand = value; }

}

屬性

屬性作用:修改和獲取私有字段的值(間接對私有字段賦值,起到保護私有字段的作用)

屬性語法

public class Person

{

private int age;

 public int Age

 {

 //get get{return age;}

 //set set{age=value;}

}}

面向對象三大特性

 01.封裝

//可以將私有字段封裝成屬性,看成是一種封裝(屬性封裝了字段)

//可以將一個方法寫到類中這種方式成為封裝(類封裝了方法)

 

02.繼承

 

03.多態

 

this關鍵字的作用

 

         c#中this關鍵字有什麼用?

 

         this代表的是當前類的實例,通過this可以訪問當前類的對象的所有

 

         成員變量和方法

 

public void SetAge(int age)

 

      {

 

          if (age>0&&age<=20)

 

          {

 

              this.age = age;

 

          }

 

          else

 

          {

 

              this.age = 2;

 

          }

 

        

 

      }

 

 

 

      public int GetAge()

 

      {

 

          return this.age;

 

      }

 

數據安全

 

    static void Main(string[] args)

 

         {

 

               Student stu = new Student();

 

               stu._age = -2;//非法數據

 

               stu. _idCard = "123456"; //身份證號不能被修改

 

         }

 

         有時候將類中的字段公開是不安全的,但是如果設為私有成員:

 

 

 

         無法正常賦值,無法獲得數據。

 

 

 

         使用方法解決數據安全問題

 

 

 

1,  使用者不可直接操作_age

 

2,   

 

3,  用方法返回_age供讀取

 

4,  用方法限制使用者的非法賦值

 

 

 

       private int _age;

 

       public int 方法1()

 

       {

 

           return this._age;

 

       }

 

       public void 方法2(int 參數)

 

       {

 

         if(參數<0||參數>100)

 

         {

 

            this._age=18;

 

         }

 

         else

 

         {

 

           this._age=參數;

 

         }

 

       }

 

         這種寫法太麻煩,於是誕生了屬性

 

       class Student

 

{

 

        private string name;

 

        public string Name

 

        {

 

            get { return name; }

 

            set { name = value; }

 

        }       

 

}

 

       value相當於方法的參數,字段和屬性的數據類型必須一致。

 

 

 

       get用於獲取相應字段的值,

 

 

 

       set用於設置字段的值。

 

 

 

       get和set都存在,讀寫屬性。只有get時,只讀屬性。只有set時,只寫屬性。

 

 

 

       屬性的作用:控制私有字段的可訪問性,保護內部數據的安全。

 

 

 

       建議:類內部敏感字段使用屬性來控制訪問

 

 

 

       快速書寫屬性的方法:用ctrl+R+E

 

 

 

       類的成員:字段、屬性和方法

 

 

 

       屬性是不能用來存儲對數據的,真正的數據是存儲在字段中的。

 

 

 

  參數的傳遞方式

 

參數傳遞有兩種方式:值傳遞和引用類型傳遞

 

 

 

注意:值傳遞不能保留參數的修改,要按引用傳遞,使用ref

 

 

 

通過引用傳遞參數:

 

 

 

1.       定義和調用時,在參數前都要使用ref

 

2.       在方法調用前:作為參數的變量要聲明並賦值

使用場景:希望保留參數的更改。

                                                             我挺辛苦的,

 

 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved