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 課程總結
封裝
類和對象
把字段封裝成屬性
方法
構造方法
值類型和引用類型