【C#入門超簡單】基本的.NET框架概念

来源:https://www.cnblogs.com/Jason54/p/18249266
-Advertisement-
Play Games

一、基本的.NET框架概念 .NET框架是一個由微軟開發的軟體開發平臺,它提供了一個運行時環境(CLR - Common Language Runtime)和一套豐富的類庫(FCL - Framework Class Library)。CLR負責管理代碼的執行,而FCL則提供了大量預先編寫好的代碼, ...


一、基本的.NET框架概念

.NET框架是一個由微軟開發的軟體開發平臺,它提供了一個運行時環境(CLR - Common Language Runtime)和一套豐富的類庫(FCL - Framework Class Library)。CLR負責管理代碼的執行,而FCL則提供了大量預先編寫好的代碼,供開發者使用。

例子:

想象一下.NET框架是一個大型的超市,CLR是超市的收銀系統,確保每件商品(代碼)都能正確結算(執行),而FCL就是超市裡的商品貨架,上面擺滿了各種商品(類和方法)供你選擇。

使用.NET類庫

.NET類庫是一組預先構建好的代碼集合,它們封裝了常見的功能,使得開發者不必從頭開始編寫所有代碼。

例子:

如果你需要進行數學運算,.NET類庫中有一個名為System.Math的類,它包含了各種數學函數,比如求平方根:

using System;

class Program
{
    static void Main()
    {
        double result = Math.Sqrt(16); // 使用Math類求平方根
        Console.WriteLine("The square root of 16 is: " + result);
    }
}

二、字元串操作

在.NET中,字元串操作是非常常見的任務,涉及到對文本數據的各種處理,比如搜索、替換、分割等。字元串在.NET中是通過System.String類來表示的,這個類提供了豐富的方法來進行各種操作。

1. 創建和連接字元串

  • 創建字元串:直接使用雙引號創建字元串。
  • 連接字元串:可以使用+操作符或者String.Concat方法來連接字元串。
string name = "張三";  // 創建字元串
string greeting = "你好, " + name + "!";  // 連接字元串
Console.WriteLine(greeting);  // 輸出:你好, 張三!

2. 字元串的基本操作

  • 長度:使用Length屬性獲取字元串的長度。
  • 訪問字元:使用索引訪問字元串中的單個字元。
string example = "Hello";
int length = example.Length;  // 獲取長度,結果為5
char firstChar = example[0];  // 獲取第一個字元,結果為'H'

3. 查找和替換

  • 查找子字元串:使用IndexOf方法查找子字元串在主字元串中的位置。
  • 替換內容:使用Replace方法替換字元串中的內容。
string sentence = "我愛編程,編程使我快樂。";
int index = sentence.IndexOf("編程");  // 查找"編程"的位置,結果為2
string newSentence = sentence.Replace("編程", "畫畫");  // 將"編程"替換為"畫畫"
Console.WriteLine(newSentence);  // 輸出:我愛畫畫,畫畫使我快樂。

4. 分割字元串

  • 分割:使用Split方法根據指定的分隔符將字元串分割成多個部分。
string fruits = "蘋果,香蕉,橘子";
string[] fruitArray = fruits.Split(',');  // 使用逗號分割字元串
foreach (string fruit in fruitArray)
{
    Console.WriteLine(fruit);  // 依次輸出:蘋果 香蕉 橘子
}

5. 字元串的修改

字元串在.NET中是不可變的,意味著一旦創建,其內容就不能改變。如果需要修改字元串,實際上是創建了一個新的字元串對象。

string original = "Hello";
string modified = original + " World";  // 創建了一個新的字元串"Hello World"
Console.WriteLine(modified);  // 輸出:Hello World

6. 格式化字元串

  • 格式化:使用String.Format或插值字元串來格式化字元串。
int age = 30;
string formatted = String.Format("他的年齡是{0}歲。", age);  // 使用String.Format格式化
string interpolated = $"他的年齡是{age}歲。";  // 使用字元串插值
Console.WriteLine(formatted);  // 輸出:他的年齡是30歲。
Console.WriteLine(interpolated);  // 輸出:他的年齡是30歲。

以上就是.NET中進行字元串操作的一些基本方法和例子,字元串操作是非常重要的一個知識點,這裡篇幅有限就不展開說了,下次專門開一篇講字元串操作,先挖個坑,哈哈哈。

三、集合框架

在.NET中,集合框架是一組用於存儲和管理數據的類和介面。這些集合類幫助我們組織數據,使數據的添加、刪除、遍歷和搜索等操作更加方便和高效。它包括列表(List)、字典(Dictionary)、隊列(Queue)、棧(Stack)等。

List

List是一個動態數組,可以存儲任何類型的元素,並允許添加、刪除和訪問元素。

例子:

using System.Collections.Generic;

List<int> numbers = new List<int> { 1, 2, 3, 4, 5 }; // 初始化List
numbers.Add(6); // 添加元素
int lastNumber = numbers[numbers.Count - 1]; // 訪問元素
numbers.RemoveAt(2); // 刪除特定位置的元素

Dictionary

Dictionary就像是一個電話簿,你可以用一個鍵(比如人名)來查找對應的值(比如電話號碼)。

例子:

Dictionary<string, int> phoneBook = new Dictionary<string, int>();
phoneBook.Add("張三", 1234567890); // 添加鍵值對
int phoneNumber = phoneBook["張三"]; // 通過鍵獲取值
Console.WriteLine("張三的電話號碼是: " + phoneNumber);

3. HashSet(集)

HashSet<T>是一種不允許重覆元素的集合,它可以用來快速檢查某個元素是否存在。

HashSet<string> uniqueNames = new HashSet<string>();  // 創建一個HashSet
uniqueNames.Add("張三");  // 添加元素
uniqueNames.Add("張三");  // 再次添加相同的元素,不會有任何效果

Console.WriteLine(uniqueNames.Count);  // 輸出元素的數量,結果為1

4. Queue(隊列)

Queue<T>是一種先進先出(FIFO)的集合。元素從隊列的一端添加,並從另一端移除。

Queue<string> line = new Queue<string>();  // 創建一個隊列
line.Enqueue("張三");  // 入隊
line.Enqueue("李四");

Console.WriteLine(line.Dequeue());  // 出隊並列印,輸出"張三"
Console.WriteLine(line.Dequeue());  // 再次出隊並列印,輸出"李四"

5. Stack(棧)

Stack<T>是一種後進先出(LIFO)的集合。元素從棧頂添加,並從棧頂移除。

Stack<string> books = new Stack<string>();  // 創建一個棧
books.Push("書籍1");  // 入棧
books.Push("書籍2");

Console.WriteLine(books.Pop());  // 出棧並列印,輸出"書籍2"
Console.WriteLine(books.Pop());  // 再次出棧並列印,輸出"書籍1"

以上就是.NET中常見的幾種集合類型的簡介和使用示例。通過這些集合類,你可以更有效地管理和操作數據集。

四、文件和流操作

文件操作是程式與文件系統交互的一種方式,流(Stream)是.NET中用於讀寫數據的抽象概念。在.NET中,文件操作主要涉及到讀取、寫入、創建和刪除文件等操作。這些操作通常通過System.IO命名空間中的類來實現,如FileFileInfoDirectoryDirectoryInfo等。

1. 寫入文件

使用File.WriteAllText方法可以創建一個文件,並向其中寫入文本。如果文件已存在,這個方法會覆蓋原有內容。

// 寫入文本到文件
string filePath = "example.txt";
string content = "Hello, this is a test file.";
File.WriteAllText(filePath, content);  // 創建文件example.txt,並寫入指定的文本內容

2. 讀取文件

使用File.ReadAllText方法可以讀取文件的全部文本內容。

// 從文件讀取文本
string readContent = File.ReadAllText(filePath);  // 讀取example.txt文件的內容
Console.WriteLine(readContent);  // 輸出文件內容

3. 追加文本到文件

使用File.AppendAllText方法可以在文件的末尾追加文本,而不是覆蓋原有內容。

// 追加文本到文件
string additionalContent = " Here is some more text.";
File.AppendAllText(filePath, additionalContent);  // 在現有文件內容後追加更多文本

4. 檢查文件是否存在

使用File.Exists方法可以檢查指定路徑的文件是否存在。

// 檢查文件是否存在
bool fileExists = File.Exists(filePath);  // 檢查example.txt文件是否存在
Console.WriteLine(fileExists ? "文件存在。" : "文件不存在。");

5. 刪除文件

使用File.Delete方法可以刪除指定路徑的文件。

// 刪除文件
File.Delete(filePath);  // 刪除example.txt文件

6. 使用StreamReader和StreamWriter

對於更複雜的文件操作,如逐行讀取或寫入大量數據,可以使用StreamReaderStreamWriter

// 使用StreamWriter寫入文件
using (StreamWriter writer = new StreamWriter("example.txt"))
{
    writer.WriteLine("第一行文本");
    writer.WriteLine("第二行文本");
}

// 使用StreamReader讀取文件
using (StreamReader reader = new StreamReader("example.txt"))
{
    string line;
    while ((line = reader.ReadLine()) != null)  // 逐行讀取直到文件末尾
    {
        Console.WriteLine(line);  // 輸出讀取的每一行
    }
}

以上就是.NET中進行文件操作的一些基本方法和示例。通過這些方法,你可以輕鬆地在.NET應用程式中處理文件的讀寫任務。

流操作還包括二進位流(BinaryReader/BinaryWriter)、網路流(NetworkStream)等,用於不同類型的數據讀寫。

以上就是.NET框架的一些核心概念和操作。每個知識點都像是構建軟體大廈的一塊磚,理解並熟練使用它們,你就能構建出功能強大、結構清晰的應用程式。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 目錄一、背景介紹1.1 爬取目標1.2 演示視頻1.3 軟體說明二、代碼講解2.1 調用API-搜索介面2.2 調用API-詳情介面2.3 API_KEY說明2.4 軟體界面模塊2.5 日誌模塊三、轉載聲明 一、背景介紹 1.1 爬取目標 用Python獨立開發了一款爬蟲軟體,作用是:通過搜索關鍵詞 ...
  • 大屏設置網卡開啟熱點後,經常收到反饋,手機端無法搜索到大屏熱點、或者手機連接大屏熱點失敗 這類問題一般有以下幾類情況: 1. 物理網卡IP與熱點網卡IP相同 2. 熱點網卡IP,非正常熱點IP(192.168.137.X) 熱點IP我們一般定為192.168.137.X,192.168.137.X是 ...
  • 在日常工作中,有時可能會需要獲取或修改客戶端電腦的系統時間,比如軟體設置了Licence有效期,預計2024-06-01 00:00:00到期,如果客戶手動修改了客戶端電腦時間,往前調整了一年,則軟體就可以繼續使用一年,如此迴圈往複,則Licence將形同虛設。所以有時候需要校驗客戶端電腦時間和服務... ...
  • PDF表單是PDF中的可編輯區域,允許用戶填寫指定信息。當表單填寫完成後,有時候我們可能需要將其設置為不可編輯,以保護表單內容的完整性和可靠性。或者需要從PDF表單中提取數據以便後續處理或分析。 之前文章詳細介紹過如何使用免費Spire.PDF庫通過C# 創建、填寫表單,本文將繼續介紹該免費.NET ...
  • 除了"在操作系統中修改時區信息,然後重啟.NET應用程式,使其生效"之外。如何在不修改操作系統時區的前提下,修改.NET中的預設時區呢? 這是一位 同學兼同事 於5月21日在技術群里問的問題,我當時簡單地研究了一下,就寫出來了。 現在寫文章分享給大家,雖然我覺得這種需求非常小眾,幾乎不會有人用到。 ...
  • 一、需求 為預防gitlab出現故障,每天定時備份,備份完成後把之前的備份文件刪除,備份成功或失敗的時候自動發送郵件提醒,這裡的gitlab為docker部署。 二、備份命令準備 1)備份命令 創建一個 gitlab_auto_backup.sh文件,文件內容 #!/bin/bash # 進入Git ...
  • 參考delphi的代碼更改為C# Delphi 檢測密碼強度 規則(仿 google) 仿 google 評分規則 一、密碼長度: 5 分: 小於等於 4 個字元 10 分: 5 到 7 字元 25 分: 大於等於 8 個字元 二、字母: 0 分: 沒有字母 10 分: 全都是小(大)寫字母 20 ...
  • 本章將和大家分享在ASP.NET Core中如何使用高級客戶端NEST來操作我們的Elasticsearch。 NEST是一個高級別的Elasticsearch .NET客戶端,它仍然非常接近原始Elasticsearch API的映射。所有的請求和響應都是通過類型來暴露的,這使得它非常適合快速上手 ...
一周排行
    -Advertisement-
    Play Games
  • 通過WPF的按鈕、文本輸入框實現了一個簡單的SpinBox數字輸入用戶組件並可以通過數據綁定數值和步長。本文中介紹了通過Xaml代碼實現自定義組件的佈局,依賴屬性的定義和使用等知識點。 ...
  • 以前,我看到一個朋友在對一個系統做初始化的時候,通過一組魔幻般的按鍵,調出來一個隱藏的系統設置界面,這個界面在常規的菜單或者工具欄是看不到的,因為它是一個後臺設置的關鍵界面,不公開,同時避免常規用戶的誤操作,它是作為一個超級管理員的入口功能,這個是很不錯的思路。其實Winform做這樣的處理也是很容... ...
  • 一:背景 1. 講故事 前些天有位朋友找到我,說他的程式每次關閉時就會自動崩潰,一直找不到原因讓我幫忙看一下怎麼回事,這位朋友應該是第二次找我了,分析了下 dump 還是挺經典的,拿出來給大家分享一下吧。 二:WinDbg 分析 1. 為什麼會崩潰 找崩潰原因比較簡單,用 !analyze -v 命 ...
  • 在一些報表模塊中,需要我們根據用戶操作的名稱,來動態根據人員姓名,更新報表的簽名圖片,也就是電子手寫簽名效果,本篇隨筆介紹一下使用FastReport報表動態更新人員簽名圖片。 ...
  • 最新內容優先發佈於個人博客:小虎技術分享站,隨後逐步搬運到博客園。 創作不易,如果覺得有用請在Github上為博主點亮一顆小星星吧! 博主開始學習編程於11年前,年少時還只會使用cin 和cout ,給單片機點點燈。那時候,類似async/await 和future/promise 模型的認知還不是 ...
  • 之前在阿裡雲ECS 99元/年的活動實例上搭建了一個測試用的MINIO服務,以前都是直接當基礎設施來使用的,這次準備自己學一下S3相容API相關的對象存儲開發,因此有了這個小工具。目前僅包含上傳功能,後續計劃開發一個類似圖床的對象存儲應用。 ...
  • 目錄簡介快速入門安裝 NuGet 包實體類User資料庫類DbFactory增刪改查InsertSelectUpdateDelete總結 簡介 NPoco 是 PetaPoco 的一個分支,具有一些額外的功能,截至現在 github 星數 839。NPoco 中文資料沒多少,我是被博客園群友推薦的, ...
  • 前言 前面使用 Admin.Core 的代碼生成器生成了通用代碼生成器的基礎模塊 分組,模板,項目,項目模型,項目欄位的基礎功能,本篇繼續完善,實現最核心的模板生成功能,並提供生成預覽及代碼文件壓縮下載 準備 首先清楚幾個模塊的關係,如何使用,簡單畫一個流程圖 前面完成了基礎的模板組,模板管理,項目 ...
  • 假設需要實現一個圖標和文本結合的按鈕 ,普通做法是 直接重寫該按鈕的模板; 如果想作為通用的呢? 兩種做法: 附加屬性 自定義控制項 推薦使用附加屬性的形式 第一種:附加屬性 創建Button的附加屬性 ButtonExtensions 1 public static class ButtonExte ...
  • 在C#中,委托是一種引用類型的數據類型,允許我們封裝方法的引用。通過使用委托,我們可以將方法作為參數傳遞給其他方法,或者將多個方法組合在一起,從而實現更靈活的編程模式。委托類似於函數指針,但提供了類型安全和垃圾回收等現代語言特性。 基本概念 定義委托 定義委托需要指定它所代表的方法的原型,包括返回類 ...