C#關鍵字全面解析

一、數據類型

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-hant/n/136404.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
PNYE的頭像PNYE
上一篇 2024-10-04 00:16
下一篇 2024-10-04 00:16

相關推薦

  • Python應用程序的全面指南

    Python是一種功能強大而簡單易學的編程語言,適用於多種應用場景。本篇文章將從多個方面介紹Python如何應用於開發應用程序。 一、Web應用程序 目前,基於Python的Web…

    編程 2025-04-29
  • Python zscore函數全面解析

    本文將介紹什麼是zscore函數,它在數據分析中的作用以及如何使用Python實現zscore函數,為讀者提供全面的指導。 一、zscore函數的概念 zscore函數是一種用於標…

    編程 2025-04-29
  • 全面解讀數據屬性r/w

    數據屬性r/w是指數據屬性的可讀/可寫性,它在程序設計中扮演着非常重要的角色。下面我們從多個方面對數據屬性r/w進行詳細的闡述。 一、r/w的概念 數據屬性r/w即指數據屬性的可讀…

    編程 2025-04-29
  • Python計算機程序代碼全面介紹

    本文將從多個方面對Python計算機程序代碼進行詳細介紹,包括基礎語法、數據類型、控制語句、函數、模塊及面向對象編程等。 一、基礎語法 Python是一種解釋型、面向對象、動態數據…

    編程 2025-04-29
  • 如何查看Python關鍵字

    Python是一種高級編程語言,具有很多有用的特性和優勢。在Python中,關鍵字被用於標識特定的語法結構。如果您正在學習Python編程,了解Python的關鍵字是非常重要的。在…

    編程 2025-04-29
  • Matlab二值圖像全面解析

    本文將全面介紹Matlab二值圖像的相關知識,包括二值圖像的基本原理、如何對二值圖像進行處理、如何從二值圖像中提取信息等等。通過本文的學習,你將能夠掌握Matlab二值圖像的基本操…

    編程 2025-04-28
  • 瘋狂Python講義的全面掌握與實踐

    本文將從多個方面對瘋狂Python講義進行詳細的闡述,幫助讀者全面了解Python編程,掌握瘋狂Python講義的實現方法。 一、Python基礎語法 Python基礎語法是學習P…

    編程 2025-04-28
  • 全面解析Python中的Variable

    Variable是Python中常見的一個概念,是我們在編程中經常用到的一個變量類型。Python是一門強類型語言,即每個變量都有一個對應的類型,不能無限制地進行類型間轉換。在本篇…

    編程 2025-04-28
  • Zookeeper ACL 用戶 anyone 全面解析

    本文將從以下幾個方面對Zookeeper ACL中的用戶anyone進行全面的解析,並為讀者提供相關的示例代碼。 一、anyone 的作用是什麼? 在Zookeeper中,anyo…

    編程 2025-04-28
  • Switchlight的全面解析

    Switchlight是一個高效的輕量級Web框架,為開發者提供了簡單易用的API和豐富的工具,可以快速構建Web應用程序。在本文中,我們將從多個方面闡述Switchlight的特…

    編程 2025-04-28

發表回復

登錄後才能評論