C# 入門學習教程 (一)

文章目錄

  • 一、解決方案與項目
    • 1. Solution 與 project
  • 二、類與名稱空間
    • 1.類與名稱空間
    • 2.類庫的引用
      • 1. DLL引用(黑盒引用,無源代碼)
      • 2. Nuget 引用
      • 3. 項目引用(白盒引用,有源代碼)
    • 3.依賴關系
  • 三、類,對象,類成員
    • 1.類(class)是現實世界事物的模型
    • 2.類與對象的關系
      • 2.1 概念
      • 2.2 代碼
    • 3. 類的三大成員
      • 3.1 概念
      • 3.2 代碼
    • 4.類的靜態成員與實例成員
  • 四、語言基本元素概覽
    • 1、構成C#語言的基本元素
    • 2、初識類型、變量和方法
    • 3、算法簡介
  • 五、類型,變量與對象
    • 1.什么是類型
    • 2.類型在C#語言中的作用
    • 3. C# 語言的類型系統
    • 4.變量、對象與內存
  • 六 、方法的定義,調用,調試
    • 1、方法的由來
    • 2、方法的聲明與調用
    • 3. 構造器
    • 4. 方法的重載(Overload)
      • 4.1調用重載方法的示例
      • 4.2 聲明帶有重載的方法
    • 5、 如何對方法進行debug

一、解決方案與項目

1. Solution 與 project

在 C# 編程里,Solution(解決方案)和 Project(項目)是兩個重要的概念,它們是組織代碼的基礎。

  1. Solution(解決方案)
    這是一個容器,其作用是管理多個相關的項目。它不會包含實際的代碼,主要用于保存項目的配置信息以及項目間的依賴關系。在 Visual Studio 中,解決方案的文件擴展名為 .sln。

    主要功能:

    • 對多個項目進行組織和管理,像一個應用程序可能由 Web 項目、類庫項目、測試項目等共同組成。
    • 對項目間的引用關系進行定義,例如 Web 項目會引用類庫項目。
    • 對全局設置進行配置,比如版本控制、編譯順序等。

  2. Project(項目)

    項目是代碼的實際載體,它定義了編譯單元,并且會生成輸出文件,像 .exe 或者 .dll 等。每個項目都有自己獨立的配置文件(.csproj)。

    常見的項目類型:

    • 控制臺應用程序(Console App):生成 .exe 文件,可直接運行。
    • 類庫(Class Library):生成 .dll 文件,用于被其他項目引用。
    • ASP.NET Web 應用程序:用于構建網站或者 API 服務。
    • 單元測試項目:用于編寫測試代碼。

Visual Studio 下面的解決方案圖

在這里插入圖片描述

二、類與名稱空間

1.類與名稱空間

類(class)

類 (class) 是最基礎的 C# 類型。類是一個數據結構,將狀態(字段)和操作(方法和其他函數成員)組合在一個單元中。類為動態創建的類實例 (instance) 提供了定義,實例也稱為對象 (object)。類支持繼承 (inheritance) 和多態性 (polymorphism),這是派生類 (derived class) 可用來擴展和專用化基類 (base class) 的機制。

名稱空間(namespace)

名稱空間是一種組織機制,用于對代碼進行邏輯分組,避免命名沖突,提升代碼的可維護性。它就像是一個容器,能包含類、接口、結構體等類型

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace HelloWorld
{class Program{static void Main(string[] args){Console.WriteLine("Hello World");System.Console.WriteLine("Hello World");}}
}
  • HelloWorld , System 則為名稱空間
  • Program,Console 則為類
  • WriteLine 為方法

2.類庫的引用

類庫引用是使用名稱空間的物理基礎

1. DLL引用(黑盒引用,無源代碼)

在這里插入圖片描述
在這里插入圖片描述

使用 FastReport 里面的方法

namespace HelloWorld
{class Program{static void Main(string[] args){FastReport.BandBase.GetData();}}
}

2. Nuget 引用

在這里插入圖片描述

在這里插入圖片描述

注意:

  • NuGet 管理器 有可能 一直在加載中,什么都沒顯示出來:

    • 解決: visual Studio -> 工具 -> 擴展與更新,直接卸載重裝 NuGet 即可。

  • 下面是注冊表解決,不能確定這個可行:

    reg add HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 /v SystemDefaultTlsVersions /t REG_DWORD /d 1 /f /reg:64
    reg add HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 /v SystemDefaultTlsVersions /t REG_DWORD /d 1 /f /reg:64
    

3. 項目引用(白盒引用,有源代碼)

添加本地的類庫:
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述

調用測試:


namespace HelloWorld
{class Program{static void Main(string[] args){int c = MyLibrary.Arithmetic.add(5,10);System.Console.WriteLine(c);}}
}

3.依賴關系

  • 類(或對象)之間的耦合關系
  • 優秀的程序追求“高內聚,低耦合
  • UML(通用建模語言)類圖

三、類,對象,類成員

1.類(class)是現實世界事物的模型

  • 類是對現實世界事物進行抽象所得到的結果
    • 事物包括“物質”( 實體)與“運動"( 邏輯)
    • 建模是一個去偽存真、由表及里的過程

2.類與對象的關系

2.1 概念

  • 對象也叫實例,是類經過“實例化”后得到的內存中的實體

    • Formally “instance"is synonymous with“object”–對象和實例是一回事
    • “飛機"與”一架飛機"有何區別?天上有(一架)飛機一-必需是實例飛,概念是不能飛的
    • 有些類是不能實例化的,比如“數學”( Math class),我們不能說”一個數學”
  • 依照類,我們可以創建對象,這就是“實例化”

    • 現實世界中常稱“對象”,程序世界中常稱“實例"

    • 二者并無太大區別,常常混用,初學者不必迷惑

  • 使用new操作符創建類的實例

  • 引用變量與實例的關系

    • 孩子與氣球
    • 氣球不一定有孩子牽著
    • 多個孩子可以使用各自的繩子牽著同一個氣球,也可以都通過一根繩子牽著氣球

2.2 代碼

new 實例化類,設置實例屬性,以及多個變量用一個實例

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace ClassAndInstance
{class Program{static void Main(string[] args){//(new Form()).Text = "my form";//(new Form()).ShowDialog();//Form myForm = new Form();//myForm.Text = "my form";//myForm.ShowDialog();Form myForm1 =  new Form();Form myForm2 = myForm1;myForm1.Text = "my form11";myForm2.Text = "my form22";myForm2.ShowDialog();}}
}

3. 類的三大成員

3.1 概念

  • 屬性(Property)
    • 存儲數據,組合起來表示類或對象當前的狀態
  • 方法(Method )
    • 由C語言中的函數(function)進化而來,表示類或對象“能做什么”
    • 工作中90%的時間是在與方法打交道,因為它是“真正做事”、“構成邏輯”的成員
  • 事件(Event )
    • 類或對象通知其它類或對象的機制,為C#所特有(Java通過其它辦法實現這個機制)
    • 善用事件機制非常重要
  • 使用MSDN文檔
  • 某些特殊類或對象在成員方面側重點不同
    • 模型類或對象重在屬性,如Entity Framework
    • 工具類或對象重在方法,如Math ,Console
    • 通知類或對象重在事件,如各種Timer

3.2 代碼

1、打印數據表數據,屬性類的實例

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace PropertySample
{class Program{static void Main(string[] args){test2024Entities proxy = new test2024Entities();foreach(tbPlmBcMaterData p in proxy.tbPlmBcMaterDatas){Console.WriteLine(p.MaterialCode);}Console.WriteLine(proxy.tbPlmBcMaterDatas.Count());}}
}

添加數據模型:

在這里插入圖片描述
在這里插入圖片描述
調試打印數據列表,總數
在這里插入圖片描述

2、事件類代碼例子

using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Threading;namespace EventSample
{/// <summary>/// MainWindow.xaml 的交互邏輯/// </summary>public partial class MainWindow : Window{public MainWindow(){InitializeComponent();DispatcherTimer timer =   new DispatcherTimer();timer.Interval = TimeSpan.FromSeconds(1);timer.Tick += timer_Tick;timer.Start();}void timer_Tick(object sender, EventArgs e){this.timeTextbox.Text = DateTime.Now.ToString();}}
}

時間秒在跳動

在這里插入圖片描述

4.類的靜態成員與實例成員

  • 靜態(Static)成員在語義上表示它是“類的成員”

  • 實例(非靜態)成員在語義表示它是“對象的成員”

  • 綁定( Binding)指的是編譯器如果把一個成員與類或對象關聯起來

    • 不可小覷的"“操作符–成員訪問

四、語言基本元素概覽

1、構成C#語言的基本元素

  • 關鍵字(Keyword )

    • C# 編程語言中,關鍵字是被編譯器預定義并保留的標識符,具有特殊意義,不能用作變量名或其他標識符
      在這里插入圖片描述
  • 操作符(Operator)

    • C# 提供大量運算符,這些運算符是指定在表達式中執行哪些操作的符號。
    • 在這里插入圖片描述
  • 標識符(ldentifier )

    • 什么是合法的標識符
    • 怎樣閱讀語言定義文檔
    • 大小寫規范
    • 命名規范
  • 標點符號

  • 文本(字面值)

    • 整數
    • 多種后綴
    • 實數
    • 多種后綴
    • 字符
    • 字符串
    • 布爾
    • 空(null )
  • 注釋與空白

    • 單行
    • 多行(塊注釋)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace identifiterSample
{class Program{static void Main(string[] args){int a = 100;long aa = 100;double b = 3.1;char c = 'a';string cc = "asdasas";bool dd = true;Console.WriteLine(dd.GetType().Name);Console.WriteLine(dd);}}
}

2、初識類型、變量和方法

  • 初識類型(Type)
    • 亦稱數據類型(Data Type)
  • 變量是存放數據的地方,簡稱“數據"
    • 變量的聲明
    • 變量的使用
  • 方法(日稱函數)是處理數據的邏輯,又稱“算法"
    • 方法的聲明
    • 方法的調用
  • 程序=數據+算法
    • 有了變量和方法就可以寫有意義的程序了

在這里插入圖片描述

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace identifiterSample
{class Program{static void Main(string[] args){Calculate cal = new Calculate();int calRes = cal.Add(10, 5);Console.WriteLine("計算結果是:" + calRes);Console.WriteLine(cal.day());cal.printRes(11, 12);}}class Calculate{public int Add(int a, int b){return a + b;}public string day(){string aa = DateTime.Now.Year.ToString();return aa;}public void printRes(int a, int b){Console.WriteLine(a+b);  }}
}

3、算法簡介

  • 循環初體驗
  • 遞歸初體驗
  • 計算1到100的和
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace identifiterSample
{class Program{static void Main(string[] args){Calculate cal = new Calculate();Console.WriteLine(cal.countXto1(100));Console.WriteLine(cal.countXto1ByTT(100));}}class Calculate{public int countXto1(int x){int sum = 0;for (int i = 0; i <= x; i++){sum = sum + i;}return sum;}public int countXto1ByTT(int x){if(x ==1){return 1;}else{return x + countXto1ByTT(x - 1);}}}
}

五、類型,變量與對象

1.什么是類型

  • 又名數據類型( Data Type )
    • 是數據在內存中存儲時的“型號”
    • 小內存容納大尺寸數據會丟失精確度、發生錯誤
    • 大內存容納小尺寸數據會導致浪費編程語言的數據類型與數據的數據類型不完全相同

2.類型在C#語言中的作用

  • 一個C#類型中所包含的信息有
    • 存儲此類型變量所需的內存空間大小
    • 此類型的值可表示的最大、最小值范圍
    • 此類型所包含的成員(如方法、屬性、事件等)
    • 此類型由何基類派生而來
    • 程序運行的時候,此類型的變量在分配在內存的什么位置
      • Stack簡介
      • Stack overflow
      • Heap簡介
      • 使用Performance Monitor查看進程的堆內存使用量
      • 關于內存泄漏
    • 此類型所允許的操作(運算)

3. C# 語言的類型系統

  1. C#的五大數據類型
  • 類(Classes):如Window, Form, Console, String
  • 結構體(Stmuctures):如Int32,Int64,Single, Double
  • 枚舉(Enumerations):如HorizontalAlignment, Visibility
  • 接口(Interfaces)
  • 委托(Delegates
  1. C#類型的派生譜系
    在這里插入圖片描述

4.變量、對象與內存

  • 什么是變量

    • 表面上來看(從C#代碼的上下文行文上來看),變量的用途是存儲數據
    • 實際上,變量表示了存儲位置,并且每個變量都有一個類型,以決定什么樣的值能夠存入變量
    • 變量一共有7種
      • 靜態變量,實例變量(成員變量,字段),數組元素,值參數,引用參數,輸出形參,局部變量
    • 狹義的變量指局部變量,因為其它種類的變量都有自己的約定名稱
      • 簡單地講,局部變量就是方法體(函數體)里聲明的變量
    • 變量的聲明
      • 有效的修飾符組合。 類型 變量名 初始化器。.
  • 值類型的變量

    • 以byte/sbtye/short/ushort為例
    • 值類型沒有實例,所謂的“實例"與變量合而為一
  • 引用類型的變量與實例

    • 引用類型變量與實例的關系:引用類型變量里存儲的數據是對象的內存地址
  • 變量的默認值

  • 常量(值不可改變的變量)

  • 裝箱與拆箱(Boxing & Unboxing )

六 、方法的定義,調用,調試

1、方法的由來

  • 方法(method)的前身是C/C++語言的函數(function)
    • 方法是面向對象范疇的概念,在非面向對象語言中仍然稱為函數
    • 使用C/C++語言做對比
  • 永遠都是類(或結構體)的成員
    • C#語言中函數不可能獨立于類(或結構體)之外
    • 只有作為類(結構體)的成員時才被稱為方法
    • C++中是可以的,稱為“全局函數”
  • 是類(或結構體)最基本的成員之
    • 最基本的成員只有兩個–字段與方法(成員變量與成員方法),本質還是數據+算法
    • 方法表示類(或結構體)“能做什么事情”
  • 為什么需要方法和函數
    • 目的1:隱藏復雜的邏輯
    • 目的2:復用(reuse,重用)

示例: 計算圓面積、圓柱體積、圓錐體積
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace CSharpMethodExample
{class Program{static void Main(string[] args){Calculator cal = new Calculator();double cc = cal.GetConeVolume(10,15);Console.WriteLine(cc);}}class Calculator{//計算圓面積public double GetCirceArea(double r){return Math.PI * r * r;}//計算圓柱體積public double GetCylinderVolume(double r, double h){return GetCirceArea(r) * h;}//計算圓錐體積public double GetConeVolume(double r, double h){return GetCylinderVolume(r, h) / 3;}}
}

2、方法的聲明與調用

  • 聲明方法的語法詳解

    • “方法”是包含一系列語句的代碼塊。 程序通過“調用”方法并指定所需的任何方法參數來執行語句。
    • 在 C# 中,每個執行指令都是在方法的上下文中執行的。
    • Main 方法是每個 C# 應用程序的入口點,在啟動程序時由公共語言運行時 (CLR) 調用。
    • Parameter全稱為"formal parameter形式上的參數,簡稱“形參”
    • Parameter是一種變量
  • 方法簽名

    • 通過指定方法的訪問級別(例如 public 或 private)、可選修飾符(例如 abstract 或 sealed)、返回值、名稱和任何方法參數,可以在 類或 結構中聲明方法。 這些部分統稱為方法的“簽名”。
  • 方法的命名規范

    • 大小寫規范
    • 需要以動詞或者動詞短語作為名字
  • 重溫靜態(static)方法和實例方法

  • 調用方法

    • 在對象上調用方法類似于訪問字段。 在對象名稱之后,依次添加句點、方法名稱和括號。 參數在括號內列出,并用逗號隔開。
    • Argument中文C#文檔的官方譯法為“實際參數”,簡稱“實參”可理解為調用方法時的真實條件
    • 調用方法時的argument列表要與定義方法時的parameter列表相匹配C#是強類型語言,arqument是值、parameter是變量,值與變量一定要匹配,不然編譯器會報錯

3. 構造器

  • 構造器(constructor)是類的成員之一
  • 任何時候,只要創建 類或 結構,就會調用它的構造函數。
  • 類或結構可能有多個接受不同參數的構造函數。
  • 構造函數使得程序員可設置默認值、限制實例化以及編寫靈活且便于閱讀的代碼。
  • 如果您沒有為對象提供構造函數,則默認情況下 C# 將創建一個構造函數,該構造函數實例化對象,并將成員變量設置為 默認值表(C# 參考)中列出的默認值。
  • 靜態類和結構也可以有構造函數。

默認構造函數實例:

using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace CSharpMethodExample
{class Program{static void Main(string[] args){//沒有為對象提供構造函數,則默認情況下 C# 將創建一個構造函數,該構造函數實例化對象,并將成員變量設置為 默認值表(C# 參考)中列出的默認值Student stu = new Student();Console.WriteLine(stu.ID);}}class Student{public int ID;public string Name;}
}

類或結構可能有多個接受不同參數的構造函數實例

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace CSharpMethodExample
{class Program{static void Main(string[] args){Student stu = new Student(11,"測試");Console.WriteLine(stu.Name);Student stuTwo = new Student();Console.WriteLine(stuTwo.Name);}}class Student{public Student(int ID,string Name){this.ID = ID;this.Name = Name;}public Student(){this.ID = 1;this.Name = "測試111";}public int ID;public string Name;}
}

構造器的內存原理

4. 方法的重載(Overload)

4.1調用重載方法的示例

Console.WriteLine(100);
Console.WriteLine(100L);
Console.WriteLine("Hello");
Console.WriteLine(300D);

在這里插入圖片描述

在這里插入圖片描述

Console.WriteLine 有 19個重載

4.2 聲明帶有重載的方法

  • 方法簽名(method signature)由方法的名稱、類型形參的個數和它的每一個形參(按從左到右的順序)的類型和種類(值、引用或輸出)組成。方法簽名不包含返回類型

  • 實例構造函數簽名由它的每一個形參(按從左到右的順序)的類型和種類(值、引用或輸出)組成。

  • 重載決策(到底調用哪一個重載):用于在給定了參數列表和一組候選函數成員的情況下,選擇一個最佳函數成員來實施調用。

方法簽名不同的重載實例

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace OverloadDemo
{class Program{static void Main(string[] args){Calculator cal = new Calculator();Console.WriteLine(cal.Add(1, 2));Console.WriteLine(cal.Add(1.1, 2.5));Console.WriteLine(cal.Add(11, 33, 55));}}class Calculator{public int Add(int a, int b){return a + b;}public int Add(int a, int b, int c){return a + b + c;}public double Add(double a, double b){return a + b;}}
}

5、 如何對方法進行debug

  • 設置斷點
  • 觀察方法調用時的 call stack
  • Step-in(F11) Step-over(F10) Steep-out (shift+F11)
  • 觀察局部變量的值與變化

在這里插入圖片描述
在這里插入圖片描述

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

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

相關文章

76、單元測試-參數化測試

76、單元測試-參數化測試 參數化測試是一種單元測試技術&#xff0c;通過將測試數據與測試邏輯分離&#xff0c;使用不同的輸入參數多次運行相同的測試用例&#xff0c;從而提高測試效率和代碼復用性。 #### 基本原理 - **數據驅動測試**&#xff1a;將測試數據參數化&#xf…

SQL學習筆記3

SQL常用函數 1、字符串函數 函數調用的語法&#xff1a;select 函數&#xff08;參數); 常用的字符串函數有&#xff1a; 拼接字符串&#xff0c;將幾個字符串拼到一起&#xff1a;concat (s1,s2,……); select concat(你好,hello); update mytable set wherefo concat(中…

Golang 面向對象編程,如何實現 封裝、繼承、多態

Go語言雖然不是純粹的面向對象語言&#xff0c;但它通過結構體(struct)、接口(interface)和方法(method)提供了面向對象編程的能力。下面我將通過具體示例展示Go中如何實現類、封裝、繼承、多態以及構造函數等概念。 1. 類與封裝 在Go中&#xff0c;使用結構體(struct)來定義…

為什么android要使用Binder機制

1.linux中大多數標準 IPC 場景&#xff08;如管道、消息隊列、ioctl 等&#xff09;的進程間通信機制 ------------------ ------------------ ------------------ | 用戶進程 A | | 內核空間 | | 用戶進程 B | | (User Spa…

OpenCV CUDA模塊設備層-----雙曲余弦函數cosh()

操作系統&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 編程語言&#xff1a;C11 算法描述 該函數用于計算四維浮點向量&#xff08;float4類型&#xff09;的雙曲余弦值&#xff0c;作用于CUDA設備端。雙曲余弦函數定義為cosh(x) (e? …

48頁PPT | 企業數字化轉型關鍵方法論:實踐路徑、案例和落地評估框架

目錄 一、什么是企業數據化轉型&#xff1f; 二、為什么要進行數據化轉型&#xff1f; 1. 市場復雜性與不確定性上升 2. 內部流程效率與協同難題突出 3. 數字資產沉淀不足&#xff0c;智能化基礎薄弱 三、數據化流程管理&#xff1a;從“業務流程”到“數據流程”的對齊 …

VTK中的形態學處理

VTK圖像處理代碼解析:閾值化與形態學開閉運算 這段代碼展示了使用VTK進行醫學圖像處理的兩個關鍵步驟:閾值分割和形態學開閉運算。下面我將詳細解析每個部分的功能和實現原理。 處理前 處理后 1. 閾值分割部分 (vtkImageThreshold) vtkSmartPointer<vtkImageThresho…

xlsx.utils.sheet_to_json() 方法詳解

sheet_to_json() 是 SheetJS/xlsx 庫中最常用的方法之一&#xff0c;用于將 Excel 工作表&#xff08;Worksheet&#xff09;轉換為 JSON 格式數據。下面我將全面講解它的用法、參數配置和實際應用場景。 基本語法 javascript 復制 下載 const jsonData XLSX.utils.sheet…

〔從零搭建〕BI可視化平臺部署指南

&#x1f525;&#x1f525; AllData大數據產品是可定義數據中臺&#xff0c;以數據平臺為底座&#xff0c;以數據中臺為橋梁&#xff0c;以機器學習平臺為中層框架&#xff0c;以大模型應用為上游產品&#xff0c;提供全鏈路數字化解決方案。 ?杭州奧零數據科技官網&#xf…

合規型區塊鏈RWA系統解決方案報告——機構資產數字化的終極武器

&#xff08;跨境金融科技解決方案白皮書&#xff09; 一、直擊機構客戶四大痛點 痛點傳統方案缺陷我們的破局點?? 跨境資產流動性差結算周期30天&#xff0c;摩擦成本超8%?? 724h全球實時交易&#xff08;速度提升90%&#xff09;?? 合規成本飆升KYC/AML人工審核占成本…

探索阿里云容器:解鎖云原生應用的無限可能

引言&#xff1a;容器時代的開啟 在數字化浪潮洶涌澎湃的當下&#xff0c;云計算已成為企業創新與發展的關鍵驅動力。從早期的基礎設施即服務&#xff08;IaaS&#xff09;&#xff0c;到如今蓬勃發展的平臺即服務&#xff08;PaaS&#xff09;和軟件即服務&#xff08;SaaS&a…

spring-ai 1.0.0 (1)模型調用能力

聽說1.0是一個非常好用的版本&#xff0c;最后還是扛不住聽說的壓力&#xff0c;為了落實自己懸浮心理&#xff0c;自己還是著手實踐一下了。 第一步pom集成&#xff1a; 參考spring-projects/spring-ai | DeepWiki維基以及官方文檔入門 &#xff1a;&#xff1a; Spring AI …

數據分享:汽車行業-汽車屬性數據集

說明&#xff1a;如需數據可以直接到文章最后關注獲取。 1.數據背景 Automobile數據集源自于對汽車市場深入研究的需求&#xff0c;旨在為汽車行業提供一個全面且詳細的資源&#xff0c;以便更好地理解影響汽車價格及性能的各種因素。該數據集最初由卡內基梅隆大學&#x…

C++ 第三階段:語言改進 - 第四節:nullptr vs NULL

目錄 一、背景與概述 二、NULL 的定義與問題 1. NULL 的定義 2. NULL 的問題 三、nullptr 的定義與優勢 1. nullptr 的定義 2. nullptr 的優勢 四、nullptr 與 NULL 的對比 五、實際應用場景 1. 初始化指針 2. 函數調用與重載 3. 條件判斷 4. 模板與泛型編程 六、…

計算機存儲器容量擴展設計實例解析

存儲器容量擴充是《計算機組成原理》課程的重要知識點。講解一個例題&#xff0c;以說明進行存儲器容量擴充設計的方法。 題目&#xff1a;在32位計算機系統中&#xff0c;用8K16位的SRAM芯片組成一個64KB的存儲器&#xff0c;已知起始地址為&#xff1a;6000 0000H。已知&…

轉載-秒殺系統—1.架構設計和方案簡介

轉載&#xff1a; https://mp.weixin.qq.com/s?__bizMzg5MzY5NDM3MQ&mid2247490866&idx1&sn0081517454680c85e0ed23eda4e82df5&chksmc02ba5fef75c2ce8b0c7f54182f3bda539230c75d2d75ed2b514b93decc0ff0c5de548a35dc3&cur_album_id3548464749150224391&…

Kubernetes中的容器生命周期回調

在介紹Kubernetes容器生命周期回調前&#xff0c;展示一個案例。 有個私有化部署的項目需要跑一個redis用作緩存&#xff0c;因redis中的數據不需要持久化&#xff0c;選擇在Kubernetes中通過deployment的方式部署&#xff0c;下面是deployment的代碼片段&#xff0c; ......…

基于STM32的工業倉庫環境智能監控系統設計

文章目錄 一、前言1.1 項目介紹【1】項目開發背景【2】設計實現的功能【3】項目硬件模塊組成【4】設計意義【5】市面上同類產品研究現狀【6】摘要 1.2 設計思路1.3 系統功能總結1.4 開發工具的選擇【1】設備端開發【2】上位機開發 1.5 模塊的技術詳情介紹【1】ESP8266-WIFI模塊…

如何在 Manjaro Linux 上啟用 AUR 倉庫來安裝軟件包

Manjaro 是基于 Arch 的系統&#xff0c;是了解和學習 Arch Linux 命令的絕佳方式。它自帶所有流行的桌面環境界面&#xff0c;無論是 XFCE 還是 Gnome 的愛好者&#xff0c;都可以在 Manjaro 中直接使用。 Manjaro 或 Arch Linux 的默認軟件包管理器是 Pacman&#xff0c;我們…

有限上升時間信號的反射波形

有限上升時間信號的反射波形: 從上一節討論中我們知道&#xff0c;阻抗不連續的點處&#xff0c;反射信號是入射信號的一個副本&#xff0c;并討論了上升時間為0的信號的反射情況。這些規律對于上升時間不為0的信號同樣適用&#xff0c;只不過入射信號和反射信號的疊加稍稍復雜…