一、數據類型
C#作為一種強類型語言,有著很多數據類型關鍵字。
1. int
int是C#中最常用的整型數據類型,佔用四個位元組,可存儲-2^31到2^31-1之間的整數。
int num = 456;
Console.WriteLine(num); //輸出456
2. float
float是單精度浮點型數據類型,佔用四個位元組,可存儲6到9位小數。
float f = 3.14f;
Console.WriteLine(f); //輸出3.14
3. double
double是雙精度浮點型數據類型,佔用八個位元組,可存儲15到17位小數。
double d = 3.1415926;
Console.WriteLine(d); //輸出3.1415926
4. bool
bool是布爾型數據類型,用於存儲True或False的值。
bool isTrue = true;
Console.WriteLine(isTrue); //輸出True
5. char
char是字元型數據類型,佔用兩個位元組,用於存儲單個字元。
char c = 'A';
Console.WriteLine(c); //輸出A
二、流程式控制制
C#中的流程式控制制關鍵字可以幫助我們控制程序的執行流程。
1. if
if用於表示條件語句,如果條件成立則執行相應的語句。
int num = 20;
if(num > 10)
{
Console.WriteLine("num大於10");
}
2. switch
switch用於表示多重條件語句,根據不同條件執行不同的語句。
int num = 3;
switch(num)
{
case 1:
Console.WriteLine("num等於1");
break;
case 2:
Console.WriteLine("num等於2");
break;
default:
Console.WriteLine("num不等於1或2");
break;
}
3. for
for用於表示循環語句,循環執行指定次數的語句。
for(int i = 0; i < 5; i++)
{
Console.WriteLine("i的值為:" + i);
}
4. while
while也用於表示循環語句,循環執行直到條件不成立。
int i = 0;
while(i < 5)
{
Console.WriteLine("i的值為:" + i);
i++;
}
5. break
break用於跳出循環語句。
for(int i = 0; i < 5; i++)
{
if(i == 3)
{
break;
}
Console.WriteLine("i的值為:" + i);
}
三、類和對象
C#是一種面向對象的語言,類和對象是C#的核心之一。
1. class
class用於定義類。
public class Person
{
public string name;
public int age;
public void SayHello()
{
Console.WriteLine("我叫" + name + ",今年" + age + "歲。");
}
}
2. object
object是C#中所有類的基類。
Person p = new Person();
object o = p;
Console.WriteLine(o.GetType()); //輸出Person
3. new
new用於實例化一個對象。
Person p = new Person();
p.name = "張三";
p.age = 18;
p.SayHello(); //輸出「我叫張三,今年18歲。」
4. this
this代表當前對象。
public class Person
{
public string name;
public int age;
public void SayHello()
{
Console.WriteLine("我叫" + this.name + ",今年" + this.age + "歲。");
}
}
5. public/private
public和private用於表示訪問許可權。
public class Person
{
public string name; //公開屬性,外部可訪問
private int age; //私有屬性,只有內部可訪問
public void SetAge(int age)
{
if(age >= 0)
{
this.age = age;
}
}
public void SayHello()
{
Console.WriteLine("我叫" + name + ",今年" + age + "歲。");
}
}
四、異常處理
異常處理是保證程序安全和穩定的重要手段。
1. try
try用於表示異常嘗試語句。
try
{
int a = 10;
int b = 0;
int c = a / b;
}
catch(Exception ex)
{
Console.WriteLine(ex.Message); //輸出「除數不能為零。」
}
2. catch
catch用於捕獲異常,指定異常類型。
try
{
// ...
}
catch(DivideByZeroException ex)
{
Console.WriteLine("除數不能為零。");
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
3. finally
finally用於表示異常處理結束後必須執行的語句。
try
{
// ...
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
Console.WriteLine("異常處理完畢。");
}
4. throw
throw用於手動拋出異常。
public int Divide(int a, int b)
{
if(b == 0)
{
throw new Exception("除數不能為零。");
}
return a / b;
}
5. using
using用於自動釋放資源。
using(StreamWriter writer = new StreamWriter("test.txt"))
{
writer.WriteLine("hello, world");
}
五、多線程
多線程是C#中的一個核心概念。
1. Thread
Thread用於定義和控制線程。
void PrintNumbers()
{
for(int i = 1; i <= 10; i++)
{
Console.WriteLine(i);
Thread.Sleep(100);
}
}
Thread t = new Thread(new ThreadStart(PrintNumbers));
t.Start();
2. lock
lock用於多線程同步訪問,防止多個線程同時修改同一數據。
class Counter
{
private int count = 0;
private object lockObject = new object();
public void Increment()
{
lock(lockObject)
{
count++;
}
}
public void Decrement()
{
lock(lockObject)
{
count--;
}
}
}
3. Monitor
Monitor用於多線程同步訪問,與lock類似。
class Counter
{
private int count = 0;
public void Increment()
{
Monitor.Enter(this);
count++;
Monitor.Exit(this);
}
public void Decrement()
{
Monitor.Enter(this);
count--;
Monitor.Exit(this);
}
}
4. ThreadPool
ThreadPool用於管理線程池。
void PrintNumbers(object state)
{
for(int i = 0; i < 10; i++)
{
Console.WriteLine(i);
Thread.Sleep(100);
}
}
ThreadPool.QueueUserWorkItem(new WaitCallback(PrintNumbers));
5. Async/Await
Async/Await用於非同步編程,避免因為長時間的計算或IO操作造成程序阻塞。
async Task DownloadFileAsync(Uri address)
{
using(var client = new WebClient())
{
return await client.DownloadStringTaskAsync(address);
}
}
六、其他關鍵字
1. const
const用於定義一個常量。
const int MaxAmount = 100;
2. sizeof
sizeof用於獲取數據類型的大小。
int a = sizeof(int); //a的值為4
3. typeof
typeof用於獲取對象的類型。
Person p = new Person();
Type t = typeof(Person);
Console.WriteLine(t.FullName); //輸出Person
4. is
is用於判斷對象是否是指定類型的實例。
Person p = new Person();
if(p is Person)
{
Console.WriteLine("p是Person的實例。");
}
5. var
var用於自動推斷變數類型。
var num = 123; //num的類型為int
原創文章,作者:PNYE,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/136404.html