02C#基本結構篇(D4_注釋-訪問修飾符-標識符-關鍵字-運算符-流程控制語句)

目錄

一、注釋

1. 單行注釋

2. 多行注釋

3. XML文檔注釋

4. 使用建議和最佳實踐:

二、訪問修飾符

1. public

2. private

3. protected

4. internal

5. protected internal 或 protected and internal

6. private protected 或 private and protected

7. 使用場景

三、標識符

1. 命名規則

2. 命名約定

3. 關鍵字和保留字

4. 使用@符號

5. 最佳實踐

四、關鍵字

1. 訪問修飾符

2. 類型關鍵字

3. 方法修飾符

4. 屬性修飾符

5. 字段修飾符

6. 聲明變量和類型

7. 控制流關鍵字

8. 其他關鍵字

9. 上下文關鍵字(Contextual Keywords)

---------------

七、方法

1. 方法的定義

2. 示例

3. 方法的調用

4. 參數傳遞方式

5. 方法重載(Overloading)

6. 可選參數和命名參數(C# 4.0及以后)

7. 表達式體定義方法(C# 6.0及以后)

8. 異步方法(Async/Await)

-------------------------------------------

八、構造器

1. 實例構造器

1.1. 2. 靜態構造器

2. 構造器的特性與使用場景

3. 構造器的調用順序

4. 構造函數鏈(Chaining)


一、注釋

在C#中,注釋是用來在代碼中添加說明性文字的,它們不會被編譯器執行,但有助于提高代碼的可讀性和維護

性。C#支持三種類型的注釋:

  1. 單行注釋
  2. 多行注釋
  3. XML文檔注釋

1. 單行注釋

單行注釋使用//開頭,從//開始到該行結束的所有內容都會被視為注釋。

示例:

// 這是一個單行注釋
int number = 5; // 這也是單行注釋

2. 多行注釋

多行注釋使用/*開頭,以*/結尾。它們可以跨越多行。

示例:

/* 這是一個多行注釋的開始這是多行注釋的中間部分這是多行注釋的結束 */
int number = 10; // 這行代碼不會被視為多行注釋的一部分

3. XML文檔注釋

XML文檔注釋以///開頭,這種注釋通常用于生成文檔(例如,使用Visual Studio的XML文檔注釋工具)。它

們遵循XML的格式,可以包含標簽和屬性,用于提供更豐富的代碼描述信息。

示例:

/// <summary>
/// 這是一個計算兩個數字之和的方法。
/// </summary>
/// <param name="a">第一個數字</param>
/// <param name="b">第二個數字</param>
/// <returns>返回兩個數字的和</returns>
public int Add(int a, int b)
{return a + b;
}

4. 使用建議和最佳實踐:

  • 保持代碼清晰:使用注釋來解釋復雜的邏輯、算法或者為什么這樣實現。
  • 避免過度注釋:好的代碼應該盡可能自解釋,過多的注釋可能會讓代碼顯得雜亂無章。
  • 更新和維護:當代碼發生變化時,確保相關的注釋也隨之更新,避免誤導。
  • 使用XML文檔注釋生成文檔:對于公開的API或庫,使用XML文檔注釋可以幫助自動生成文檔,這對于維護和團隊協作非常有幫助。
  • 遵循團隊的編碼規范:如果在一個團隊中工作,確保所有成員遵循相同的注釋規范和風格。

通過合理使用這些注釋技巧,你可以顯著提高代碼的可讀性和維護性。

二、訪問修飾符

在C#中,訪問修飾符是用來控制類、方法、屬性、事件和索引器等成員的訪問權限的。它們決定了這些成員可以

被哪些代碼訪問。C#中共有五種訪問修飾符,每種都有其特定的用途和范圍。以下是這五種訪問修飾符的詳細解

釋:

1. public

public 修飾符表示成員可以被任何其他代碼訪問,無論是同一個程序集內的代碼還是其他程序集的代碼。

示例:public class MyClass { } 表示這個類可以在任何地方被訪問。

2. private

private 修飾符表示成員只能被定義它的類內部訪問。

這意味著,即使是在同一個程序集內,其他類也無法訪問該成員。

示例:private int myVariable; 表示這個變量只能在定義它的類內部被訪問。

3. protected

protected 修飾符表示成員可以被定義它的類以及所有派生類(子類)訪問。

但是,如果這個成員位于不同的程序集,那么只有在派生類位于同一個程序集內時才能訪問。

示例:protected virtual void MyMethod() { } 表示這個方法可以在派生類中被重寫和調用。

4. internal

internal 或稱為 assembly 修飾符表示成員可以被同一個程序集內的任何代碼訪問,但不能被其他程序集的代碼

訪問。

示例:internal class MyInternalClass { } 表示這個類只能在定義它的程序集內被訪問。

5. protected internal 或 protected and internal

protected internal 修飾符是 protectedinternal 的組合,表示成員可以被定義它的類、所有派生類以及同

一個程序集內的任何代碼訪問,但不能被其他程序集的代碼訪問。

示例:protected internal string MyProperty { get; set; }

表示這個屬性可以在派生類和同一個程序集內被訪問,但不能被其他程序集訪問。

6. private protected 或 private and protected

private protected 是C# 7.2引入的,它結合了 privateprotected 的特性,使得成員只能被定義它的類和所

有派生類(無論是否在同一程序集內)訪問。

示例:private protected void MyMethod() { } 表示這個方法只能在定義它的類和所有派生類中被訪問。

7. 使用場景

  • public:當你希望類的成員對所有外部代碼都可見時使用。
  • private:當你希望類的成員僅在其定義的類內部可用時使用。
  • protected:當你希望類的成員在其自身和派生類中可用時使用。
  • internal:當你希望類的成員在同一個程序集內可用時使用。
  • protected internal:當你希望類的成員在同一個程序集內或在派生類中可用時使用。
  • private protected:當你希望類的成員在定義它的類和所有派生類中可用時使用,無論它們是否在同一程序集內。

正確選擇和使用這些訪問修飾符對于設計良好的、可維護的C#代碼非常重要。

三、標識符

在C#中,標識符是用來命名變量、方法、類、接口、事件、屬性等元素的名稱。

它們遵循一系列規則和約定,以確保代碼的可讀性和一致性。

下面是一些關于C#中標識符的重要規則和細節:

1. 命名規則

  • 首字母規則:標識符可以以字母或下劃線(_)開頭。在C#中,標識符不能以下劃線開頭。
  • 后續字符規則:標識符可以包含字母、數字、下劃線(_)和@符號。但是,不能包含空格或其他特殊字符。
  • 大小寫敏感:C#是大小寫敏感的,這意味著variableVariable被視為兩個不同的標識符。

2. 命名約定

C#社區遵循一些命名約定,以提高代碼的可讀性和維護性:

  • 駝峰命名法(Camel Case)
    • 小駝峰命名法(lowerCamelCase):第一個單詞的首字母小寫,后續單詞的首字母大寫。例如:myVariable
    • 大駝峰命名法(UpperCamelCase或PascalCase):每個單詞的首字母都大寫。例如:MyClass
  • 匈牙利命名法(Hungarian Notation):盡管不常用,但某些舊代碼中仍可見。匈牙利命名法通過在變量名前加上一個或多個字母來表示變量的類型或作用。例如:iCount表示一個整型計數器。

3. 關鍵字和保留字

C#有一些關鍵字和保留字不能用作標識符,因為它們已經被賦予了特定的意義。例如:

int class = 5; // 錯誤,因為'class'是C#的關鍵字

完整的C#關鍵字列表可以在官方文檔中找到,例如:C# Keywords。

4. 使用@符號

如果你需要使用一個以關鍵字命名的變量名,或者變量名與C#的保留字沖突,你可以在變量名前加上@符號

來“轉義”關鍵字或保留字。例如:

int @class = 5; // 正確,使用@來避免關鍵字沖突

5. 最佳實踐

  • 清晰和描述性:選擇能夠清晰描述變量或對象用途的名稱。
  • 一致性:在項目中保持一致的命名約定。
  • 避免混淆:避免使用可能引起混淆的縮寫或過于簡短的名稱。

示例

public class MyClass {private int myVariable; // 小駝峰命名法private int MyProperty { get; set; } // 大駝峰命名法,用于屬性public static void Main() {int iCount = 10; // 小駝峰命名法,表示一個計數器Console.WriteLine(iCount);}
}

遵循這些規則和最佳實踐將有助于編寫更清晰、更易于維護的C#代碼。

四、關鍵字

在C#中,關鍵字是用來表示程序中特定功能的詞匯,它們在編程時具有特殊的含義和用途。了解這些關鍵字對于

編寫有效的C#代碼至關重要。C#的關鍵字可以分為以下幾類:

1. 訪問修飾符

  • public:允許訪問的類型或成員可以被任何其他代碼訪問。
  • private:限制訪問的類型或成員只能被其所屬的類訪問。
  • protected:允許訪問的類型或成員只能被其所屬的類或派生類訪問。
  • internal:允許訪問的類型或成員只能在同一個程序集內被訪問。
  • protected internal:允許訪問的類型或成員只能在同一個程序集內或派生類中被訪問。
  • private protected:允許訪問的類型或成員只能在同一個程序集內的派生類中被訪問。

2. 類型關鍵字

  • class:定義一個類。
  • struct:定義一個值類型結構體。
  • interface:定義一個接口。
  • enum:定義一個枚舉類型。
  • delegate:定義一個委托。

3. 方法修飾符

  • static:表示方法屬于類而不是類的實例。
  • virtual:表示方法可以在派生類中被重寫。
  • override:表示方法重寫基類中的虛方法。
  • abstract:表示方法在派生類中必須被重寫。
  • sealed:阻止方法被重寫。

4. 屬性修飾符

  • get:用于獲取屬性值的方法。
  • set:用于設置屬性值的方法。
  • readonly:指示屬性只可讀,不可寫。

5. 字段修飾符

  • const:定義一個常量字段。
  • readonly:定義一個只讀字段,其值必須在聲明時或在構造函數中初始化。
  • volatile:指示字段可能由多個線程同時修改,編譯器應避免優化該字段的訪問。

6. 聲明變量和類型

  • var:自動推斷變量的類型(C# 3.0引入)。
  • dynamic:在運行時解析類型(C# 4.0引入)。
  • ref:引用傳遞參數(傳遞變量的引用而不是值)。
  • out:用于方法參數,表示該參數用于從方法返回一個值(通常用在返回多個值時)。
  • params:用于方法的參數,允許傳遞零個或多個參數。

7. 控制流關鍵字

  • ifelseswitchcasedefaultwhiledoforforeachbreakcontinuegotoreturntrycatchfinallythrowcheckedunchecked

8. 其他關鍵字

  • using:用于聲明命名空間或使用資源(如文件、數據庫連接等)。
  • namespace:定義命名空間。
  • classstructinterfaceenumdelegate 等用于定義類型的關鍵字也在此分類下,但它們屬于類型關鍵字類別。
  • null:表示空引用或空指針。
  • truefalse:布爾值的字面量。
  • sizeof: 在不安全代碼中,用于獲取類型的字節大小。
  • lock: 用于鎖定對象,確保線程安全地訪問共享資源。
  • yield: 在迭代器塊中使用,用于返回序列中的元素。
  • asyncawait: 用于異步編程模型中,使異步方法更易于編寫和使用。

9. 上下文關鍵字(Contextual Keywords)

這些關鍵字在不同的上下文中可能有不同的含義,例如在泛型編程中:

  • where: 在泛型約束中使用,例如指定類型參數必須繼承自某個類或實現某個接口。
  • in: 在泛型編程中指定協變(C# 7.3及以后版本)。
  • out: 在泛型編程中指定逆變(C# 7.3及以后版本)。

了解這些關鍵字及其用途對于編寫高效和正確的C#代碼至關重要。在實際開發中,合理地使用這些關鍵字可以提

高代碼的可讀性和維護性。

---------------

七、方法

在C#中,方法(也稱為函數)是執行特定任務的代碼塊。它們可以被定義在一個類中,并被其他類或方法調用。

C#中的方法可以是靜態的(屬于類本身)或實例的(屬于類的實例)。下面將詳細解釋C#中方法的各個方面。

1. 方法的定義

一個C#方法的基本定義格式如下:

[訪問修飾符] [返回類型] 方法名([參數列表])
{// 方法體
}
  • 訪問修飾符:如 public, private, protected, internal 等,控制方法的訪問權限。
  • 返回類型:方法返回的數據類型,如果是void則表示不返回任何值。
  • 方法名:標識符,遵循C#的命名規則。
  • 參數列表:括號內包含一個或多個參數,每個參數由類型和名稱組成,參數間用逗號分隔。
  • 方法體:包含執行任務的代碼塊。

2. 示例

public class ExampleClass
{// 無參數無返回值的方法public void SayHello(){Console.WriteLine("Hello, World!");}// 有參數有返回值的方法public int Add(int a, int b){return a + b;}
}

3. 方法的調用

  • 靜態方法:使用類名直接調用。
ExampleClass.SayHello(); // 需要是靜態方法或靜態屬性訪問方式
  • 實例方法:首先創建類的實例,然后通過該實例調用。
ExampleClass example = new ExampleClass();
example.SayHello(); // 調用非靜態方法
int result = example.Add(5, 3); // 調用非靜態方法并獲取返回值

4. 參數傳遞方式

C#支持按值傳遞(默認)和按引用傳遞(使用refout關鍵字)。

  • 按值傳遞:傳遞參數的副本,對副本的修改不會影響原始參數。
  • 按引用傳遞:直接傳遞參數的內存地址,對參數的修改會影響原始參數。ref用于修改傳入的參數值,out用于在方法內部給參數賦值。

5. 方法重載(Overloading)

同一個類中可以有多個同名方法,只要它們的參數列表不同(參數數量或類型不同)。這稱為方法重載。

public void Show(int a) { }
public void Show(string text) { }

6. 可選參數和命名參數(C# 4.0及以后)

從C# 4.0開始,可以在方法定義時為參數提供默認值,使其成為可選參數。還可以在調用時使用命名參數。

public void Print(string message = "Default Message") { }
Print("Hello"); // 使用默認值和命名參數調用Print方法。

7. 表達式體定義方法(C# 6.0及以后)

從C# 6.0開始,可以使用表達式體來定義簡單的只返回一個表達式結果的方法。

public int Multiply(int a, int b) => a * b; // 相當于 { return a * b; } 的簡寫形式。

8. 異步方法(Async/Await)

C#支持異步編程模式,允許方法在等待操作完成時釋放線程,使用asyncawait關鍵字。

public async Task<int> GetDataAsync() 
{ // 使用await調用異步方法并獲取結果 return await SomeAsyncMethod(); 
}

通過以上介紹,你應該對C#中的方法有了一個全面的理解。

每種方法和概念都可以幫助你更有效地編寫和組織代碼。

-------------------------------------------

八、構造器

在C#中,構造器(Constructor)是一種特殊的方法,用于在創建對象時初始化對象。構造器與類同名,沒有返回

類型,主要用于分配內存并初始化對象。C#中有兩種類型的構造器:實例構造器(用于創建對象實例)和靜態構

造器(用于初始化靜態成員)。

1. 實例構造器

實例構造器用于創建類的實例,并初始化對象的狀態。每個類可以有多個構造器,只要它們的參數列表不同。

示例

public class Person
{public string Name { get; set; }public int Age { get; set; }// 無參數構造器public Person(){Name = "Unknown";Age = 0;}// 帶參數的構造器public Person(string name, int age){Name = name;Age = age;}
}

1.1. 2. 靜態構造器

靜態構造器用于初始化類的靜態成員。靜態構造器是類的一部分,而不是實例的一部分。靜態構造器在類第一次

被引用時自動調用,僅執行一次。

示例

public class DatabaseConnection
{private static string connectionString;// 靜態構造器static DatabaseConnection(){connectionString = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;";}
}

2. 構造器的特性與使用場景

  • 無參數構造器:通常用于提供一個默認的初始化狀態。如果類中沒有定義任何構造器,編譯器會自動提供一個無參數的默認構造器。一旦你定義了任何構造器(無論是帶參數的還是無參數的),編譯器就不會自動提供默認的無參數構造器。
  • 帶參數的構造器:允許在創建對象時傳遞不同的初始值。這增加了對象的靈活性,使得可以根據需要創建具有不同初始狀態的多個對象實例。
  • 構造函數重載:通過定義多個具有不同參數列表的構造器,可以實現構造函數重載。這允許根據提供的參數創建不同類型的對象實例。

3. 構造器的調用順序

  • 父類構造器的調用:在派生類的構造器中,必須首先調用基類的構造器(除非基類是無參數的默認構造器)。這通常通過使用 :base() 語法完成。例如:public ChildClass(string name) : base(name)
  • 靜態構造器的調用:靜態構造器在類第一次被引用時自動調用,用于初始化靜態成員。它不能被直接調用,也不能帶有訪問修飾符或參數。

4. 構造函數鏈(Chaining)

在派生類的構造函數中,可以使用 this() 來調用基類的另一個構造函數。例如:

public class ChildClass : BaseClass
{public ChildClass(string name) : base(name) // 調用基類的帶參數的構造器{// 子類的初始化代碼}
}

通過以上介紹,你可以更好地理解C#中構造器的使用和它們的重要性。

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

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

相關文章

【CXX】6.2 str — rust::Str

Rust::Str 公共 API // rust/cxx.hclass Str final { public:Str() noexcept;Str(const Str &) noexcept;Str(const String &) noexcept;// 如果輸入不是 UTF-8&#xff0c;拋出 std::invalid_argument 異常。Str(const std::string &);Str(const char *);Str(con…

基于windows的MySQL安裝(2025最新,小白可用)

目錄 一&#xff0c;下載官網地址&#xff08;及版本選擇&#xff09;&#xff1a; 二&#xff0c;以安裝程序的方式安裝MySQL 1&#xff0c;安裝過程 2&#xff0c;用客戶端使用MySQL 3&#xff0c;配置環境變量在windows命令行界面使用mysql 下次開機后手動啟用服務 三…

Jenkins實現自動化構建與部署:上手攻略

一、持續集成與Jenkins核心價值 1.1 為什么需要自動化構建&#xff1f; 在現代化軟件開發中&#xff0c;團隊每日面臨以下挑戰&#xff1a; 高頻代碼提交&#xff1a;平均每個開發者每天提交5-10次代碼。多環境部署&#xff1a;開發、測試、預發布、生產環境需頻繁同步。復雜…

4個 Vue 路由實現的過程

大家好&#xff0c;我是大澈&#xff01;一個喜歡結交朋友、喜歡編程技術和科技前沿的老程序員&#x1f468;&#x1f3fb;?&#x1f4bb;&#xff0c;關注我&#xff0c;科技未來或許我能幫到你&#xff01; Vue 路由相信朋友們用的都很熟了&#xff0c;但是你知道 Vue 路由…

數學之快速冪-數的冪次

題目描述 給定三個正整數 N,M,P&#xff0c;求 輸入描述 第 1 行為一個整數 T&#xff0c;表示測試數據數量。 接下來的 T 行每行包含三個正整數 N,M,P。 輸出描述 輸出共 T 行&#xff0c;每行包含一個整數&#xff0c;表示答案。 輸入輸出樣例 示例 1 輸入 3 2 3 7 4…

【JavaEE】多線程進階(2)

【JavaEE】多線程進階&#xff08;2&#xff09; 一、JUC(java.util.concurrent) 的常?類1.1 Callable 接?1.2 ReentrantLock1.3 原子類原子類的特性&#xff1a;常見原子類&#xff1a;原子類的實例&#xff1a; 1.4 線程池1.5 信號量 Semaphore代碼實例 1.6 CountDownLatch…

[漏洞篇]XSS漏洞詳解

[漏洞篇]XSS漏洞 一、 介紹 概念 XSS&#xff1a;通過JS達到攻擊效果 XSS全稱跨站腳本(Cross Site Scripting)&#xff0c;為避免與層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆&#xff0c;故縮寫為XSS。這是一種將任意 Javascript 代碼插入到其他Web用戶頁面里執行以…

越早越好!8 個反直覺的金錢真相|金錢心理學

很多人都追求財富自由&#xff0c;但成功的人少之又少。 這可能是因為&#xff0c;人們往往忽略了一些金錢的真相和常識。 01 金錢常識 & 真相 為了構建健康的金錢觀&#xff0c;我讀了一本有點反直覺&#xff0c;有點像雞湯&#xff0c;但都是財富真相的書。 來自 Morg…

Spring Boot/Spring Cloud 整合 ELK(Elasticsearch、Logstash、Kibana)詳細避坑指南

我們在開發中經常會寫日志&#xff0c;所以需要有個日志可視化界面管理&#xff0c;使用ELK可以實現高效集中化的日志管理與分析&#xff0c;提升性能穩定性&#xff0c;滿足安全合規要求&#xff0c;支持開發運維工作。 下述是我在搭建ELK時遇到的許許多多的坑&#xff0c;希望…

AI編程: 一個案例對比CPU和GPU在深度學習方面的性能差異

背景 字節跳動正式發布中國首個AI原生集成開發環境工具&#xff08;AI IDE&#xff09;——AI編程工具Trae國內版。 該工具模型搭載doubao-1.5-pro&#xff0c;支持切換滿血版DeepSeek R1&V3&#xff0c; 可以幫助各階段開發者與AI流暢協作&#xff0c;更快、更高質量地完…

手機屏幕摔不顯示了,如何用其他屏幕臨時顯示,用來導出資料或者清理手機

首先準備一個拓展塢 然后 插入一個外接的U盤 插入鼠標 插入有數字小鍵盤區的鍵盤 然后準備一根高清線&#xff0c;一端鏈接電腦顯示器,一端插入拓展塢 把拓展塢的連接線&#xff0c;插入手機充電口&#xff08;可能會需要轉接頭&#xff09; 然后確保手機開機 按下鍵盤…

探索鏈表的奧秘:C語言中的查找操作與鏈表打印

目錄 鏈表的基本結構 頭插法 打印鏈表 按位置查找 按值查找 主函數 查找操作 示例運行 輸出示例 總結 在數據結構的學習中&#xff0c;鏈表是一種非常重要的線性結構。它的動態特性使得在插入和刪除操作時比數組更為高效。今天&#xff0c;我們將繼續探討鏈表的操作&…

第八屆藍橋杯單片機省賽

什么&#xff1f;你把最近幾屆省賽真題做完已經無題可做了&#xff0c;那不妨來看看老古董第八屆省賽的題目吧&#xff01; 附件&#xff1a;第八屆藍橋杯單片機省賽 一、數碼管 1.頁面流轉 以上的頁面流轉功能可以用下圖總結&#xff1a; #mermaid-svg-38fdQpdydbMy5CyP {fo…

win10電腦鼠標速度突然變的很慢?

電腦鼠標突然變很慢&#xff0c;殺毒檢測后沒問題&#xff0c;鼠標設置也沒變&#xff0c;最后發現可能是誤觸鼠標的“DPI”調節鍵。 DPI調節鍵在鼠標滾輪下方&#xff0c;再次點擊即可恢復正常鼠標速度。 如果有和-的按鍵&#xff0c;速度變快&#xff0c;-速度變慢。 圖源&…

1-002:MySQL InnoDB引擎中的聚簇索引和非聚簇索引有什么區別?

在 MySQL InnoDB 存儲引擎 中&#xff0c;索引主要分為 聚簇索引&#xff08;Clustered Index&#xff09; 和 非聚簇索引&#xff08;Secondary Index&#xff09;。它們的主要區別如下&#xff1a; 1. 聚簇索引&#xff08;Clustered Index&#xff09; 定義 聚簇索引是表數…

【解決哈希沖突】

哈希沖突 如果兩個不同的 key 通過哈希函數得到了相同的索引&#xff0c;這種情況就叫做「哈希沖突」。 哈希沖突不可能避免&#xff0c;只能在算法層面妥善處理出現哈希沖突的情況。 哈希沖突是一定會出現的&#xff0c;因為這個 hash 函數相當于是把一個無窮大的空間映射到…

文件操作詳解(萬字長文)

C語言文件操作 一、為什么使用文件&#xff1f;二、文件分類三、文件的打開和關閉四、文件的順序讀寫4.1fputc4.2fgetc4.3fputs4.4fgets4.5 fprintf4.6 fscanf4.7 fwrite4.8 fread 五、文件的隨機讀寫5.1 fseek5.2 ftell和rewind六、文件讀取結束的判定七、文件緩沖區 一、為什…

基于 JDBC 的后端與 MySQL 數據庫交互 javaweb

一、了解JDBC 二、添加MySQL的JDBC驅動包 三、使用JDBC連接數據庫應用&#x1f517; 3.1創建一個包 3.2 查找實例 3.3 修改添加刪除實例 四、封裝 &#x1f4e6; DBConnection.java MysqlUtil.java 測試使用一下 測試1 測試2 在后端開發中&#xff0c;與數據庫進行交…

貪心算法--

1.檸檬水找零 link:860. 檸檬水找零 - 力扣&#xff08;LeetCode&#xff09; code class Solution { public:bool lemonadeChange(vector<int>& bills) {// 貪心算法&#xff0c; 優先花出大面額bill&#xff0c; 盡可能保護小面額billint five 0, ten 0;// 不…

基于YOLO11深度學習的電瓶車進電梯檢測與語音提示系統【python源碼+Pyqt5界面+數據集+訓練代碼】

《------往期經典推薦------》 一、AI應用軟件開發實戰專欄【鏈接】 項目名稱項目名稱1.【人臉識別與管理系統開發】2.【車牌識別與自動收費管理系統開發】3.【手勢識別系統開發】4.【人臉面部活體檢測系統開發】5.【圖片風格快速遷移軟件開發】6.【人臉表表情識別系統】7.【…