標籤:
序:
在vs中,可以產生三種項目:
第一種:控制台項目:用於練習C#文法
第二種:傳統型程式項目:比如我們經常看到的傳統型程式(CS)。
第三種:web項目:用於開發網站
1.我們先來說一下
.net和C#的關係:
它們之間什麼關係呢?就好比對球跟我們一樣,C# 要運行在.net平台。
.net(.net framework)開發平台,它分為兩塊,一塊是公用語言運行,和.net架構類庫(微軟提供給我們的開發工具,它就是命名空間,程式集,命名空間相當於盒子,裡面放各種方法,屬性,對象跟類)
C#呢?是一種物件導向的,運行在.net平台的程式設計語言。
物件導向:一種編程的思維方式,所有的對象,屬性,方法被建立出來,然後調用。
eg: 一個叫做A的老鼠跑了
一個叫做B的貓叫了
一個叫做C的人醒了
這中間呢, 老鼠,貓,人就是對象,而A,B,C名字這是它的屬性,跑了,叫了,醒了這是動作,叫方法(方法後面都有小括弧),把對象和對象具有的屬性和方法,建立出來,然後調用,就叫物件導向。
所以是:有了類->才有對象->才有對象的屬性和方法(像一個人,首先他是一個對象,我們要瞭解他,我們就要知道他叫什麼跟喜歡幹些什麼)
我們都知道所有的前端語言都不需要編譯,瀏覽器能自動識別。而C#的運行最終由cpu進行處理,cpu處理器能識別C#這種進階程式設計語言嗎?
當然不能,那它們是怎麼進行工作的呢?
圖中可以看到,C#在vs(開發工具)中經過c#編譯器變成可以在.net平台裡面被識別的微軟中繼語言,在經過.net通用語言執行平台及時編譯器就變成了本地cpu可以識別的語言。
2.練習C#要建立一個控制台項目,怎麼建立控制台項目呢?檔案-建立-項目-windows-控制應用程式
我們可以看到最上面是一個檔案類型是.sln結尾的檔案。這是一個解決方案,下面一個是當前項目的名稱(也就是命名空間)。最下面有個.cs結尾的檔案就是類。
一個解決方案下面可以有很多重專案,一個項目下又有很多類。有了類,才能有對象。
3.我們如何定義一個類呢?
c#中,我們如何定義一個類呢?我們用關鍵字class+類的名稱(通常我們用一個英文名字首大寫-增強代碼可讀性)
我們右鍵-建立項目-建立一個類,叫person類吧!
class Person
{
}
類有了,有了類,我們就可以把它變成對象,Person p=new person(); 我們把這個叫做構造方法:由一個類變成對象的方法
class Person
{
Person p=new person(); //類名 對象名,隨便命名一個 =new執行個體化 person方法(),方法後有小括弧 ,這叫執行個體化對象
//對象有了我們就定義一些欄位和方法
string name="xiaoxiao"; //字串類型我們用string
int age=10;
//屬性有了,我們再來定義一個方法,會打招呼,會哭
SayHi()
{
}
Cry()
{
}
}
類有了,屬性方法都有了,我們可以看到中有個項目類program.cs的類,我們把它開啟:
開啟,我們就會看到以上這些東西,最上面那塊是using什麼什麼,這是引入命名空間,這些命名空間哪來的,就是上面.net平台裡面的.net架構類庫,微軟公司為我們封裝提供好的工具。
下面這個namespace 名字,是我們當前項目的命名空間。再下面的Program就是一個類,定義好的,再下面的是程式入口,Main()定義了一個程式入口的方法
4. 我們可以在class Person中列印一句話(調用write方法)
class Person
{
string name="zhangsan";
int age=10;
void SayHi() //void 無傳回型別
{
Console.WriteLine("你好啊!");
//接下來我們會看到提示,class system.console的東西,說明1.console是一個類;2.說明console是在System這個命名空間下面
}
int GetNum() //得到一個數組,如果是string,則返回一個String類型,如果是int就返回一個整數類型,無傳回值就是void
{
int i=10;
return i;
}
}
Console.Write()列印一句話,不會換行; Console.WriteLine();列印一句話,換行
接下來,我們可以調用了嗎?不可以,為什麼呢?
因為這些是私人的成員,如果是私人的話,它預設的是Private(這個叫存取修飾詞/控制存取權限) Private string name="";,它只能在該類裡面訪問,不能到其它類訪問
如果要去訪問其它,我們要怎麼做呢?
我們把它變成公有的就ok啦。
public string name="zhangsan";
public int age=10;
piblic void SayHi()
{
Console.WriteLine("你們好啊,我是一個人類!");
}
Public int GetNum(int i)
{
//int i=10;
i+=10;
return i;
}
變成公有了,那我們到其它類怎麼訪問呢?類方法裡調用它的欄位和方法?
static void Main(string [] args)
{
//通過對象調用它的欄位和內容,執行個體化一個對象
Person p=new person();
Console.WriteLine(p.name);
Console.WriteLine(p.age);
p.SayHI();//這邊為什麼不用列印呢?因為前面已經列印了
Console.WriteLine(p.GetNum(20)); //返回的是數值,所以要加這個
Console.ReadKey(); //執行上面的代碼,發現一閃而過,為什嗎?我們加上這一段代碼就好了。
}
關於c#的一些筆記