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

C#學習,

編輯:C#入門知識

C#學習,


C#開發輕松入門(慕課網)
1、C#簡介
1-1 .NET簡介
.NET平台可運用多種語言編程,C#配合的最好。
1-2 Visual Studio簡介及安裝
...

1-6 Hello World
控制台程序:Main方法,程序的入口

Console.Write("Hello World\n"); // Ctrl+F5直接運行


namepalce命名空間--class類(C#程序有一個一個的類組成)

2、C#語法基礎
const常量
數組聲明:

string[] name = new string[3];
char[] a = new char[] {'a', 'b', 'c'};
char[] a = {'a', 'b', 'c'};
//二維數組,看作是數組的數組
int[,] arr = new int[2,3]; //包含2個一維數組,每個一維數組包含3個變量,總共2*3=6個數組元素

 



foreach
foreach循環可以不依賴索引而讀取每一個數組元素,有迭代的意思

int[] num = {1, 2, 3};
foreach(int i in num)
{
  Console.Write(i);
}



在控制台接收輸入:

string name;
name = Console.Readline();

 



在C#中進行斷點跟蹤和調試:
F9設置/取消斷點
F5進行調試
F10進行單步執行

F11進入方法體


用C#實現封裝(慕課網)

1、C#中的類和對象
1-1 類和對象的概念:
面向對象、封裝、繼承、多態、類、對象、字段(屬性)、方法。
實例化

1-2 定義類
在項目處右擊添加類

namespace MyFirstApp
{
  /// <summary>
  /// 小朋友
  /// </summary>
  class Child
  {
    public string name;
    public int age;

    public void playBall()
    {
      Console.Write("我是LBJ");
    }

  }
}

 


1-3 實例化對象並訪問對象成員

Child XiaoMIng = new Child();//實例化對象
XiaoMing.name = "小明";//為字段賦值
XiaoMIng.playBall();//調用方法



1-4 訪問修飾符public&private
public(公共的)、private(私有的)
默認為private

2、屬性的封裝
2-1 封裝的概念
為什麼要在程序中使用封裝--使用封裝(隱藏對象的信息、留出訪問的接口)

class Child
{
  private string _sex;
  public string Sex
  {
    //get、set、value都是關鍵字
    get{return _sex;}//讀訪問器
    set{_sex = value;}//寫訪問器
  }
}

 

  



2-2 代碼實現屬性的封裝
封裝的快捷鍵:Ctrl+R+E

class Child
{
    private string _name;
    //使用快捷鍵Ctrl+R+E實現快速封裝
    public string Name
    {
        get { return _name;}
        set { _name = value;}
    }
}        

 


2-3 只讀屬性
只有get訪問器,用構造方法為字段進行初始化

2-4 通過set塊約束屬性賦值

private int _age;

public int Age
{
get { return _age; }
set 
{ //約束屬性賦值
if(value>3 && value<7)
_age = value;
}
}

 


3、方法
3-1 定義並調用無參方法
。。。
3-2 定義並調用帶參方法
形參實參

public void EatSuge(string suger)
{
if(suger == "榴蓮糖")
//輸出
else
//輸出
}

 


3-3 方法的重載(通過實參類型和參數數量的不同確定)

public void EatSuge(int count)
{  //...  }
public void EatSuge(string suger, int count)
{   //...  }

 


3-4 通過return結束方法調用或帶回返回值

4、構造方法
4-1 默認構造方法、無參構造方法和有參構造方法
構造方法:在實例化對象時為屬性賦初始值
通常聲明為public,可重載

無參:

public Child()
{//...}

 



有參:

public Child(string name, string sex, int age)
{
_name = name;
_sex = sex;
_age = age;
}

 



4-2 this關鍵字
this代表當前對象

public Child(string name, string sex, int age)
{
this._name = name;
this._sex = sex;
this._age = age;
}

 



4-3 對象初始化器

Child child = new Child(){Name = "asf", Age = 5};

 

5、值類型和引用類型
5-1 值類型與引用類型
  **值類型:int、char、double、bool
  

  //x的值不變,創建了y副本
  //值類型變量存儲對象的值,賦值會創建值得副本,修改任何副本都不會影響其他副本
  int x;
  int y=x;
  y--;//y變x不變

 



**引用類型:類(string)、數組、接口

//引用類型存儲對象的內存地址
//賦值不會創建值得副本,只會創建地址的副本
//修改任何一個副本,也同時修改其他的副本
Child c1 = new Child();
c1.Name = "張小明";
Child c2 = c1;
c2.Name = "劉小勇";
Console.Write(c1.Name);//輸出為劉小勇
Console.Write(c2.Name);//輸出為劉小勇

 



5-2 結構(值類型,也可以有字段、屬性和方法)
結構與類的不同:
最根本的區別是結構是值類型,而類是引用類型;
結構的字段不能賦初始值;
結構不能定義無參的構造方法;
結構內的構造方法裡必須為所有的字段賦值;
結構定義時不必須實例化;


5-3 枚舉(值類型)
舉例:用枚舉限制sex的賦值

enum Gender
{
  男,女
}

特點:
枚舉是值類型;
枚舉不能定義字段、屬性和方法;
枚舉值是從0遞增的整數。

5-4 方法傳參中的值類型和引用類型
值類型與引用類型賦值時不同造成的差異
引用類型,按引用傳參,傳遞的是地址--導致形參改變實參也改變
值類型,按值傳參,傳遞的是值副本--形參改變,實參不變

5-5 ref關鍵字

//使得值類型的參數可以按照引用傳參
class Program
{
    static void Main(string[] args)
    {
        int age = 2;
        increase(ref age);//傳入age的引用,類似於C++的&age
        Console.Write(age);
    }

    static void increase(ref int Age)//ref int傳入引用,類似於C++的int&
    {
        Age++;
    }
}    

 

5-6 out關鍵字
返回多個值
舉例:

class Program
{
    static void Main(string[] args)
    {
        int ly, ny;//去年的年齡,明年的年齡
        int age = 2;
        lyny(age, out ly, out ny);//返回去年的年齡和明年的年齡
        Console.WriteLine(ly+" "+ny);//輸出1 3
    }

    static void lyny(int Age, out int lastyear, out int nextyear)//輸出去年的年齡和明年的年齡
    {
        lastyear = Age - 1;
        nextyear = Age + 1;
    }
}            

 



5-7 課程總結
  封裝
  類和對象
  把字段封裝成屬性
  方法
  構造方法
  值類型和引用類型

 




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