C# 基礎知識總結(帶詳細文字說明)

1.?基礎語法結構

C# 程序由命名空間、類和方法組成。每個程序必須有一個?Main?方法作為入口點。using?指令用于導入命名空間,Console.WriteLine()?是常用的輸出方法。

csharp

復制

下載

using System;  // 引入核心命名空間class Program  // 類定義
{static void Main()  // 程序入口方法{Console.WriteLine("Hello C#!");  // 控制臺輸出}
}

2.?數據類型

C# 是強類型語言,所有變量必須聲明類型:

類型示例說明
intint age = 25;32位整數,范圍: -231 到 231-1
doubledouble pi = 3.14;64位雙精度浮點數
boolbool isActive = true;布爾值(true/false)
charchar symbol = '#';單個Unicode字符
stringstring name = "Alice";Unicode字符串
decimaldecimal price = 19.99m;128位精確十進制數,適合金融計算

3.?變量與常量
  • 變量:存儲可變值,使用前必須聲明類型

  • 常量:使用?const?聲明,值不可變

  • 類型推斷var?關鍵字讓編譯器推斷類型

csharp

復制

下載

int counter = 10;          // 顯式類型聲明
const double TAX_RATE = 0.2;  // 常量
var message = "Hello";     // 編譯器推斷為string類型

4.?運算符

C# 包含多種運算符類型:

  • 算術運算符+,?-,?*,?/,?%

  • 比較運算符==,?!=,?>,?<,?>=,?<=

  • 邏輯運算符&&?(AND),?||?(OR),?!?(NOT)

  • 賦值運算符=,?+=,?-=,?*=

csharp

復制

下載

int x = 15, y = 4;
double quotient = x / (double)y;  // 3.75 (需類型轉換)
bool isEven = (x % 2 == 0);       // 檢查偶數

5.?控制流程

控制程序執行流程的結構:

條件語句

csharp

復制

下載

int temperature = 22;if (temperature > 30)Console.WriteLine("炎熱");
else if (temperature > 20)Console.WriteLine("舒適");  // 輸出此項
elseConsole.WriteLine("涼爽");

循環語句

csharp

復制

下載

// for 循環:精確控制迭代次數
for (int i = 1; i <= 5; i++) {Console.Write(i + " ");  // 輸出: 1 2 3 4 5
}// while 循環:條件滿足時執行
int count = 3;
while (count > 0) {Console.Write(count-- + " ");  // 輸出: 3 2 1
}

6.?數組

存儲相同類型元素的集合:

  • 一維數組:線性數據集合

  • 多維數組:表格結構數據

  • 索引從0開始

csharp

復制

下載

// 一維數組
string[] colors = { "紅", "綠", "藍" };
Console.WriteLine(colors[0]);  // 輸出"紅"// 二維數組
int[,] grid = { {1, 2}, {3, 4}, {5, 6} };
Console.WriteLine(grid[2, 0]);  // 輸出5

7.?方法(函數)

封裝可重用代碼塊:

  • 可接收參數

  • 可返回結果

  • 提高代碼復用性

csharp

復制

下載

// 方法定義
static double CalculateCircleArea(double radius)
{return Math.PI * radius * radius;
}// 方法調用
double area = CalculateCircleArea(5.0);
Console.WriteLine($"圓面積: {area:F2}");  // 輸出: 圓面積: 78.54

8.?類與對象

面向對象編程的核心:

  • :對象的藍圖模板

  • 對象:類的具體實例

  • 屬性:描述對象特征

  • 方法:對象的行為

csharp

復制

下載

class Book
{// 屬性public string Title { get; set; }public string Author { get; set; }// 方法public void DisplayInfo() {Console.WriteLine($"《{Title}》, 作者: {Author}");}
}// 創建對象
Book myBook = new Book();
myBook.Title = "C#入門經典";
myBook.Author = "John Doe";
myBook.DisplayInfo();  // 輸出書籍信息

9.?繼承與多態

OOP 的核心特性:

  • 繼承:子類繼承父類特性

  • 多態:不同對象對同一消息有不同響應

  • 方法重寫:使用?virtual?和?override

csharp

復制

下載

class Vehicle  // 基類
{public virtual void StartEngine() {Console.WriteLine("引擎啟動");}
}class Car : Vehicle  // 繼承
{public override void StartEngine()  // 方法重寫{Console.WriteLine("汽車引擎啟動");}
}// 多態示例
Vehicle myVehicle = new Car();
myVehicle.StartEngine();  // 輸出"汽車引擎啟動"

10.?異常處理

處理運行時錯誤的機制:

  • try:包含可能出錯的代碼

  • catch:捕獲并處理異常

  • finally:無論是否異常都會執行

csharp

復制

下載

try
{int[] nums = { 1, 2, 3 };Console.WriteLine(nums[5]);  // 索引超出范圍
}
catch (IndexOutOfRangeException ex)  // 捕獲特定異常
{Console.WriteLine($"錯誤: {ex.Message}");
}
catch (Exception ex)  // 通用異常捕獲
{Console.WriteLine($"未知錯誤: {ex.Message}");
}
finally
{Console.WriteLine("清理資源完成");
}

11.?字符串操作

字符串是引用類型,常用操作:

  • 拼接:+?或?$"{}"

  • 格式化:ToUpper(),?ToLower()

  • 查詢:Contains(),?IndexOf()

  • 截取:Substring()

csharp

復制

下載

string greeting = "   Hello C#   ";
Console.WriteLine(greeting.Trim());        // 移除空格: "Hello C#"
Console.WriteLine(greeting.ToUpper());     // 轉大寫: "   HELLO C#   "
Console.WriteLine(greeting.Contains("C#")); // 檢查包含: True
Console.WriteLine($"長度: {greeting.Length}"); // 字符串插值

12.?集合類型

System.Collections.Generic?命名空間提供:

  • List<T>:動態數組

  • Dictionary<TKey,TValue>:鍵值對集合

  • Queue<T>:先進先出隊列

  • Stack<T>:后進先出堆棧

csharp

復制

下載

using System.Collections.Generic;// List示例
List<int> numbers = new List<int> { 10, 20, 30 };
numbers.Add(40);
Console.WriteLine($"第二個元素: {numbers[1]}");  // 20// Dictionary示例
Dictionary<string, int> ages = new Dictionary<string, int>();
ages.Add("Alice", 28);
ages["Bob"] = 32;  // 另一種添加方式
Console.WriteLine($"Alice的年齡: {ages["Alice"]}");

完整案例:學生成績管理系統

csharp

復制

下載

using System;
using System.Collections.Generic;class Student
{public string Name { get; set; }public List<int> Grades { get; } = new List<int>();public void AddGrade(int grade) {if (grade < 0 || grade > 100)throw new ArgumentException("成績必須在0-100之間");Grades.Add(grade);}public double CalculateAverage(){if (Grades.Count == 0) return 0;double sum = 0;foreach (int grade in Grades)sum += grade;return sum / Grades.Count;}
}class Program
{static void Main(){try{Student student = new Student { Name = "張三" };student.AddGrade(85);student.AddGrade(92);student.AddGrade(78);Console.WriteLine($"{student.Name}的平均成績: {student.CalculateAverage():F1}");}catch (Exception ex){Console.WriteLine($"錯誤: {ex.Message}");}}
}

程序說明

  1. 創建?Student?類管理學生信息和成績

  2. 使用?List<int>?存儲多個成績

  3. 實現成績添加和平均分計算方法

  4. 添加異常處理確保成績有效性

  5. 主程序創建學生對象并計算平均分

輸出

text

復制

下載

張三的平均成績: 85.0

關鍵概念總結

概念說明
面向對象封裝、繼承、多態三大特性,使用類(class)和對象(object)構建程序
類型系統值類型(int, struct)直接存儲值,引用類型(class, string)存儲內存地址
內存管理自動垃圾回收(GC),using?語句管理資源釋放
核心特性屬性(Properties)、索引器、委托(Delegates)、事件(Events)
高級功能LINQ(語言集成查詢)、異步編程(async/await)、反射(Reflection)
開發框架.NET Framework/.NET Core,支持控制臺、Web(ASP.NET)、桌面(WinForms/WPF)等應用

學習路線建議

  1. 掌握基礎語法和OOP概念

  2. 學習常用.NET類庫(集合、文件IO、網絡)

  3. 實踐數據庫操作(ADO.NET/Entity Framework)

  4. 探索高級主題(異步編程、LINQ、依賴注入)

  5. 構建實際項目(Web API、桌面應用)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/84108.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/84108.shtml
英文地址,請注明出處:http://en.pswp.cn/web/84108.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C#最佳實踐:為何要統一命名

C#最佳實踐:為何要統一命名 在 C# 編程的世界里,代碼就像是一座龐大的數字城市,而命名則是城市中縱橫交錯的街道名稱與建筑標識。如果沒有統一的命名規范,這座城市將陷入混亂,開發者在其中探索、維護代碼時也會迷失方向。統一命名不僅是一種編程習慣,更是保障代碼質量、…

通過后端連接Opengauss數據庫的方法

文章目錄 通過后端連接Opengauss數據庫的方法一、為什么默認不能訪問&#xff1f;二、要讓普通用戶從宿主機訪問數據庫&#xff0c;需要以下幾個步驟&#xff1a;1. 使用 omm 超級用戶登錄數據庫2. 創建一個應用程序專用用戶&#xff0c;并設置密碼3. 提供給應用程序專用用戶對…

AWS Config:概述、優勢以及如何開始?

在當今云原生架構快速發展的背景下&#xff0c;越來越多企業意識到資源配置管理和合規性審查的重要性。作為 AWS 官方授權代理商&#xff0c;在云上致力于為企業客戶提供全面、可靠的云服務解決方案&#xff0c;幫助企業輕松上云、合規運營。本文將為您詳細解讀 AWS Config ——…

金融領域LLM開源測試集

BizFinBench 中文 金融業務場景基準數據集 結合迭代校準評估框架IteraJudge&#xff0c;對25個先進LLM進行全面評估&#xff0c;發現在金融AI領域與人類期望存在顯著性能差距。 https://arxiv.org/pdf/2505.19457 https://github.com/HiThink-Research/BizFinBench/tree/m…

跨語言RPC:使用Java客戶端調用Go服務端的JSON-RPC服務

在分布式系統開發中&#xff0c;不同編程語言之間進行通信是一個常見的需求。通過遠程過程調用&#xff08;RPC&#xff09;技術&#xff0c;我們可以讓不同的程序像調用本地方法一樣調用遠程的服務。本文將介紹如何使用Go語言編寫一個簡單的JSON-RPC服務&#xff0c;并使用Jav…

UE5 創建AI控制器、AI行為樹和黑板

UE5 創建AI控制器、AI行為樹和黑板 一、創建AI控制器AIController&#xff08;大腦&#xff09; 二、創建AI行為樹和黑板 1&#xff1a;AI人工智能 2&#xff1a;行為樹 3&#xff1a;黑板 三、AI行為樹藍圖和添加黑板 1&#xff1a;添加黑板&#xff08;腦電波&#xff09;…

CDN加速導致CLS升高圖片托管服務器的3個選擇標準!

許多網站為了提升加載速度&#xff0c;會采用CDN加速服務分發圖片等靜態資源 這樣做可能導致CLS&#xff08;累積布局偏移&#xff09;指標升高&#xff0c;拖累SEO評分。 這一問題通常源于CDN的異步加載機制或圖片尺寸未預定義&#xff0c;使得頁面布局在渲染過程中頻繁變動。…

MySQL(77)如何設置自動備份任務?

設置自動備份任務可以確保你的數據庫定期備份&#xff0c;防止數據丟失。以下是如何使用 Bash 腳本和 Cron 任務在 Linux 系統上設置 MySQL 數據庫的自動備份任務的詳細步驟和代碼示例。 1. 編寫備份腳本 首先&#xff0c;我們需要編寫一個備份腳本。這個腳本將包含執行備份的…

.NET 開發中全局數據存儲的幾種方式

文章目錄 一、靜態類與靜態成員實現方式特點優缺點 二、應用程序配置系統1. appsettings.json (ASP.NET Core)使用方式2. 用戶設置 (WinForms/WPF)特點 三、依賴注入容器ASP.NET Core 示例特點 四、內存緩存 (IMemoryCache)實現方式特點 五、分布式緩存 (IDistributedCache)實現…

人才爭奪戰關鍵期,AI如何賦能招聘效率倍增、精準選拔

數智化轉型浪潮席卷全球的今天&#xff0c;人才作為企業核心競爭力的地位日益凸顯。而在傳統招聘流程&#xff0c;尤其是面試環節正面臨效率瓶頸、體驗短板等多項挑戰&#xff0c;典型如&#xff1a; 耗時冗長的篩選與安排&#xff1b;難以避免的主觀評價偏差&#xff1b;海量…

介紹下分布式ID的技術實現及應用場景

什么是分布式ID 分布式ID是指在分布式系統中生成的特定范圍內唯一的標識符&#xff0c;如訂單號、商品ID、鏈路追蹤TraceID。 隨著業務發展&#xff0c;對分布式ID的要求越來越高&#xff0c;其中最基本的要求如下 全局唯一&#xff1a;在任何節點、任何時間生成的ID都必須是…

【leetcode-字母異位詞分組】

排序法 public List<List<String>> groupAnagrams(String[] strs) {//最終值List<List<String>> result new ArrayList<>();//排序法HashMap<String,List<String>> map new HashMap<>(); //遍歷strfor(String str : strs){/…

langchain從入門到精通(九)——ChatGPT/Playground手動模擬記憶功能

1. 摘要緩沖混合記憶 摘要緩沖混合記憶中&#xff0c;所需的模塊有&#xff1a; chat_message_history&#xff1a;存儲歷史消息列表。moving_summary_buffer&#xff1a;移除消息的匯總字符串。summary_llm&#xff1a;生成摘要的 LLM&#xff0c;接收 summary&#xff08;當…

docker單點安裝Hadoop

1、Docker中拉取jdk8鏡像 拉取鏡像 docker pull openjdk:8-jdk 查看jdk docker run -it openjdk:8-jdk bash which java 2、安裝ubuntu源 拉取鏡像 docker pull ubuntu:22.04 保存 docker save -o ubuntu-22.04.tar.gz ubuntu:22.04 移動到自己想要的目錄 mv /roo…

uniapp項目之小兔鮮兒小程序商城(二) 首頁的實現:自定義導航欄,輪撥圖,前臺分類,熱門推薦,猜你喜歡,下拉刷新,骨架屏

文章目錄 零.首頁最終效果一.自定義導航欄1.新建pages/index/components/CustomNavbar.vue首頁子組件2.在首頁pages/index/index.vue中引入3.隱藏默認導航欄修改標題顏色4.適配不同機型使用到了uniapp的一個api:獲取屏幕邊界到安全區域的距離在子組件中使用 二.輪撥圖1.新建 sr…

RustDesk自建遠程服務器

目錄 服務端 環境linux 安裝 開放端口 客戶端配置 下載客戶端 安裝后配置網絡 參考&#xff1a;RustDesk自建遠程服務器_rustdesk自建服務器-CSDN博客 服務端 環境 linux 安裝 下載 wget https://github.com/rustdesk/rustdesk-server/releases/download/1.1.8-2/r…

【Axure高保真原型】圖片伸縮展示列表

今天和大家分享圖片伸縮展示列表的3個原型案例&#xff0c;模版都是用中繼器制作的&#xff0c;所以使用也很方便&#xff0c;在中繼器表格里導入對應的圖片&#xff0c;即可自動生成交互效果&#xff0c;具體效果可以點擊下方視頻觀看或打開下方預覽地址查看哦 【原型效果】 …

keil新建工程文件結構和每個文件的作用解析(標準庫版本)

通過網盤分享的文件:STM32工程模板 鏈接:https://pan.baidu.com/s/1YPFgXu1kwuwsCVxrXFSjZg?pwd=1111 提取碼: 1111 --來自百度網盤超級會員v5的分享 這個工程模版是來源于B站江科大的模版,每個人搭建工程文件結構不一樣,僅供參考。 工程文件目錄結構如圖所示 1、DebugC…

【AI論文】Saffron-1:LLM安全保證的推理縮放范例

摘要&#xff1a;現有的安全保證研究主要集中在培訓階段的協調&#xff0c;以向LLM灌輸安全行為。 然而&#xff0c;最近的研究表明這些方法容易受到各種越獄攻擊。 同時&#xff0c;推理擴展顯著提高了LLM推理能力&#xff0c;但在安全保證方面仍未得到探索。 為了解決這一差距…

LLM 支持的基于意圖的分類 網絡釣魚電子郵件

大家讀完覺得有幫助記得關注和點贊&#xff01;&#xff01;&#xff01; 抽象 網絡釣魚攻擊仍然是現代網絡安全的重大威脅&#xff0c;因為它們成功地欺騙了人類和旨在保護他們的防御機制。傳統的檢測系統主要關注用戶在收件箱中看不到的電子郵件元數據。此外&#xff0c;這些…