C#基礎(chǔ)
類:
編程中的一種抽象的數(shù)據(jù)類型(用于表現(xiàn)存儲數(shù)據(jù)的類型)。用于描述一組具有相同屬性和行為的對象(例如:狗、貓、雞羊可看作是一個對象,狗的屬性可以是名字、花色、體重,行為可以有吃東西,跑步)。
通過類可以方便的實(shí)例化出相同類型的對象(前面舉例的狗可以實(shí)例化出名字:小白,花色:白色,體重:50kg),并達(dá)到重復(fù)使用的效果。類還具有面向?qū)ο缶幊痰娜筇匦缘牟僮鳎庋b繼承多態(tài)。
命名空間:
用于在程序中創(chuàng)建范圍。通過命名空間,我們可以避免名稱與其他部分代碼發(fā)生沖突,從而更好地組織和管理代碼。在一個命名空間內(nèi),我們可以定義變量、函數(shù)、類等,這些名稱在命名空間以外無法直接訪問,需要使用命名空間限定符來訪問。命名空間在許多編程語言中都有實(shí)現(xiàn),例如C#、Java、C++等。
1.1 頂級語句
C#9中新增了叫頂級語句的語言特性。創(chuàng)建簡單的應(yīng)用程序時,無需書寫類命名空間和Mian()方法聲明。直接書寫代碼就被稱之為頂級語句。在引入命令空間System后,可以直接使用Console類。
using System;
//這是開啟的第一段代碼
//使用控制臺Console類調(diào)用靜態(tài)方法 在控制臺打印出一段話
Console.WriteLine("Hello World!,你好世界");
1.2 變量
C#提供了聲明和初始化變量的不同方式。變量也是一種數(shù)據(jù)類型,有一個類型和一個隨著時間可能會發(fā)生改變的值。
using System;
//1、變量的聲明(固定類型)
string s1 = "Hello World!"; //字面量聲明
string s2 = new string("Hello World!"); //實(shí)例化聲明
//2、在C#3引入支持類型判斷的var關(guān)鍵字
var s3 = "Hello World!"; //可通過右側(cè)值得類型推斷出左側(cè)類型
//3、在知道左邊類型的情況俠 可以直接使用new()
//可以在書寫類成員減少代碼量
string s4 = new("hello world!");
1.3 變量的作用域
變量的作用域就是可以訪問該代碼的具體區(qū)域。作用域會遵守以下規(guī)則
- 只要類在作用域內(nèi),其字段(成員變量)也在作用域內(nèi)。 在類作用域中兩個方法都可以直接使用成員變量。
//動物類
public class Animal
{
//訪問修飾符 (特殊修飾符) 變量類型 變量名 = 最基本的成員變量
//名字
private string _name;
public string Name => _name;
//顏色
private string _color;
public string Color => _color
//奔跑
public void Running()
{
//$""可以將變量方便的嵌入字符串中 類似于c語言中的占位符打印
//c語言 int i = 0; scanf("\n", i);
//$"開頭{變量名}結(jié)尾"
Console.WriteLine($"名叫{name}顏色{color}的動物在奔跑");
}
//吃
public void Eat()
{
Console.WriteLine($"名叫{name}顏色{color}的動物在吃東西");
}
}
- 在到達(dá)聲明局部變量的塊語句或者方法的右花括號之前,局部變量都在作用域內(nèi)。可以看到定義在方法內(nèi)部的變量無法在另一個方法中直接訪問,這種變量也被稱為局部變量,兩個speed可以重名因?yàn)樗麄冊诓煌饔糜虍?dāng)中。
//動物類
public class Animal
{
//奔跑
public void Running()
{
//奔跑速度
float speed = 10f;
Console.WriteLine($"一只動物在以{speed}的速度奔跑");
}
//吃
public void Eat()
{
//想直接訪問Runing方法中的speed會報錯:Console.WriteLine($"{speed}");
float speed = 5f;
Console.WriteLine($"一只動物在以{speed}的速度吃東西");
}
}
- 還有一種比較特殊的 for、while或者類似語句中聲明的局部變量的作用域是該循環(huán)體內(nèi)部。
//動物類
public class Animal
{
//奔跑
public void Running()
{
//一次跑10圈
//for語句是讓花括號內(nèi)語句重復(fù)執(zhí)行 for(索引;循環(huán)判斷條件;索引變化) 也可以自由變換for()內(nèi)的值 這里不做深入
for(int i = 1; i <= 10; i++)
{
Console.WriteLine($"跑了{i}圈");
}
//可以看到這里for中又一次定義了變量名為i的變量
//但因?yàn)椴辉谝粋€作用域中所以不會報錯 上面for循環(huán)中的i 與下面的i也不是同一個變量
for(int i = 10;i >= 1; i--)
{
Console.WriteLine($"這里的i值:{i}")
}
}
}
1.4 常量
在寫代碼時會出現(xiàn)一些從來不曾也不需要改變的值,可以將其定義成一個常量。會使用到一個關(guān)鍵字const
被const定義的變量出現(xiàn)的每一個地方,編譯器都將使用常量值替換它。文章來源:http://www.zghlxwxcb.cn/news/detail-816611.html
//這里面的值不會發(fā)生改變
const int a = 100;
這個局部字段每次出現(xiàn)時,編譯器都會把它替換為它的值。在版本變化時,如果在庫中聲明了一個常量,在應(yīng)用程序中使用該常量,就需要重新編譯應(yīng)用程序來使用新值,否則可能會發(fā)生值不相同??赡苓€需要考慮到在版本變化時也不會改變的值才去使用const關(guān)鍵字
常量的特點(diǎn):文章來源地址http://www.zghlxwxcb.cn/news/detail-816611.html
- 常量必須在聲明時初始化。制定了其值后,就不能改寫。
- 常量的值必須能在編譯時計(jì)算出來。因此不能使用變量值初始化常量,只有只讀變量可以但也不推薦。
- 常量總是隱式靜態(tài)的,但不同于Java語言在c#語法中,不必(實(shí)際不允許)在常量聲明中包含修飾符static。
使用常量的好處 - 使用更易理解的名字替代了不會更改的字符串,使其更加容易理解
//需要讀取的文件地址
const string LOAD_PATH = "C/test/test1.txt";
- 常量更容易避免程序出現(xiàn)錯誤。如果在聲明常量的位置以外的某個地方將值賦給常量,編譯器會標(biāo)記錯誤。
只讀變量:如果一個實(shí)例的某些值在初始化后就不會再發(fā)生改變,那么就可以使用readonly字段聲明只讀。
//動物類
public class Animal
{
//又是老朋友動物類
//名字
private readonly string _name; //不會再發(fā)生改變的值
public string Name => _name;
}
到了這里,關(guān)于Unity C#編程基于《C#高級編程第12版》——C#基礎(chǔ)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!