C# 常量與變量

在 C# 中,常量和變量是存儲數據的基本方式:

// 常量:使用 const 關鍵字聲明,必須在聲明時初始化,且值不能改變
const double Pi = 3.14159;
const string Message = "Hello, World!";
?
// 變量:存儲可以變化的值,需要先聲明類型,再賦值
int age; ? ? ? ? // 聲明整型變量
age = 30; ? ? ? ?// 賦值
string name = "John"; ?// 聲明并初始化

C# 數據類型

C# 中的數據類型分為兩大類:

值類型

值類型直接存儲數據的值,分配在棧上,包括:

// 整數類型
byte b = 255; ? ? ?// 無符號8位整數 (0-255)
short s = 32767; ? ?// 16位整數
int num = 123456; ? // 32位整數
long bigNum = 1234567890123; ?// 64位整數
?
// 浮點類型
float f = 3.14f; ? // 單精度浮點數,需加后綴 f
double d = 3.14159; ?// 雙精度浮點數
?
// 布爾類型
bool isActive = true;
?
// 字符類型
char c = 'A'; ? ? ?// 存儲單個Unicode字符
引用類型

引用類型存儲對數據的引用(內存地址),分配在堆上,包括:

// 字符串類型
string text = "Hello"; ?// 不可變的字符序列
?
// 對象類型
object obj = 123; ? ? ? // 可以引用任何類型的對象
?
// 數組類型
int[] numbers = {1, 2, 3, 4, 5}; ?// 存儲相同類型的多個元素

值類型和引用類型的區別

區別值類型引用類型
存儲方式直接存儲值存儲對值的引用
內存位置棧(Stack)堆(Heap)
復制行為復制值本身復制引用(指向同一對象)
默認值例如:int 默認值為 0默認為 null
示例類型int, bool, structstring, object, array

枚舉類型

枚舉(enum)是一種值類型,用于定義一組命名的常量:

// 定義枚舉類型
enum DaysOfWeek
{Monday, ? ? ?// 默認值為0Tuesday, ? ? // 1Wednesday, ? // 2Thursday, ? ?// 3Friday, ? ? ?// 4Saturday, ? ?// 5Sunday ? ? ? // 6
}
?
// 使用枚舉
DaysOfWeek today = DaysOfWeek.Monday;
Console.WriteLine(today); ?// 輸出: Monday

類型轉換

類型轉換分為隱式轉換和顯式轉換:

// 隱式轉換:從小范圍類型到大范圍類型(安全轉換)
int a = 100;
long b = a; ?// int 可以隱式轉換為 long
?
// 顯式轉換(強制轉換):從大范圍類型到小范圍類型(可能丟失數據)
double x = 3.14;
int y = (int)x; ?// 輸出: 3(截斷小數部分)
?
// 轉換方法
string numStr = "123";
int num = int.Parse(numStr); ?// 字符串轉整數
bool success = int.TryParse(numStr, out int result); ?// 安全轉換
?
// 引用類型轉換
object obj = "Hello";
string str = (string)obj; ?// 強制轉換
string safeStr = obj as string; ?// 安全轉換(失敗返回 null)

可空類型

可空類型允許值類型存儲 null 值,適用于可能沒有值的場景:

// 聲明可空值類型
int? nullableInt = null; ?// int 類型可空
DateTime? nullableDate = null; ?// DateTime 類型可空
?
// 使用可空類型
if (nullableInt.HasValue)
{Console.WriteLine(nullableInt.Value); ?// 獲取值
}
else
{Console.WriteLine("Value is null");
}
?
// 空合并運算符(??)
int value = nullableInt ?? 0; ?// 如果 nullableInt 為 null,則返回 0

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

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

相關文章

TensorRT-LLM:大模型推理加速的核心技術與實踐優勢

大型語言模型推理就像讓一頭300公斤的大熊貓玩平衡木——顯存消耗和計算效率這對雙胞胎問題隨時可能讓表演翻車。以主流的7B參數模型為例,FP16精度下僅模型權重就吃掉14GB顯存,這還沒算上推理過程中不斷膨脹的KV Cache——當處理2048長度的對話時&#x…

免費棱光 PDF:免安裝 加水印 去水印 批量格式轉換

各位辦公小能手們,今天給大家介紹一款超棒的PDF處理工具——棱光PDF!它完全免費,專門解決咱對PDF文件的常見操作需求。綠色免安裝,體積小得跟顆花生米似的,打開就能用。它有三大核心功能,分別是水印管理、格…

(二)復習(Error Pattern/Result Pattern/)

文章目錄 項目地址一、Error Pattern1.1 定義Error類1. ErrorType 可發生的錯誤類型2. Error類3. ValidataionError1.2 給每個實體創建Error類1. CategoryError類2. TicketErrror類3. EventErrror類二、Result Pattern1.1 自定義返回Result1. 泛型類2. 泛型方法1.2 Api層的Resu…

20250705-day6

NATO:北大西洋公約組織 Software Crisis:軟件危機 Paradigm:設計范型 Waterfall Model:瀑布模型 Prototype Model:原型模型(又稱快速模型) Spiral Model:螺旋模型 Agile:…

視頻播放中時鐘的概念及音視頻同步概念

author: hjjdebug date: 2025年 07月 05日 星期六 18:20:45 CST descrip: 視頻播放中時鐘的概念及音視頻同步概念 文章目錄 1.前言: 視頻播放:1. 固定延時時間2. 根據frame的duration來延時.3. 根據frame的PTS 來播放3.1. 時鐘是什么?3.2. 時鐘的用途. 2.音視頻同步: 1.前言: …

Python基礎之字符串操作全解析

在 Python 中,字符串是最常用的數據類型之一,掌握字符串的各種操作對于日常編程至關重要。本文將詳細介紹 Python 字符串的類型特性、編碼轉換、常用運算符及方法,幫助你全面掌握字符串處理技巧。 一、字符串的基本類型 Python 中的字符串屬…

【爬蟲】逆向爬蟲初體驗之爬取音樂

尋找數據 打開F12中的網絡頁面,播放音樂后,篩選媒體,會發現當前這首歌曲音頻鏈接地址,打開后,點擊“標頭”就能能看到請求URL 截取“.mp3”前面的一部分進行搜索,搜索出來了很多數據包,但都是…

CppCon 2018 學習:Fancy Pointers for Fun and Profit

“Fancy Pointers for Fun and Profit” 這個標題聽起來像是在討論**“高級指針用法”**,尤其是在C里,如何利用智能指針、定制指針類型,或者其他高級指針技巧來寫更安全、更高效、更優雅的代碼。 可能的理解和內容方向: 1. 什么是…

思辨場域丨數字信號技術重塑農林牧漁:從“靠天吃飯”到“靠數吃飯”

凌晨三點,山東萊蕪的養豬戶老李被手機震動驚醒。屏幕顯示:3號豬舍,母豬即將分娩。他輕點屏幕啟動遠程監控,翻身繼續入睡——而在幾年前,這樣的夜晚他只能在豬圈里守著。 清晨的茶園里,興業縣的茶農王大姐掏…

文心大模型及百度大模型內容安全平臺齊獲信通院大模型安全認證

近日,文心大模型與百度大模型內容安全平臺——紅線大模型雙雙榮獲中國信息通信研究院泰爾認證中心頒發的“大規模預訓練模型(文本生成功能)安全認證證書”,且二者的認證級別皆“增強級”的最高級別。 大規模預訓練模型&#xff08…

香港服務器查詢緩存禁用-性能優化關鍵技術解析

在香港服務器運維過程中,查詢緩存禁用是提升數據庫性能的關鍵操作。本文將深入解析禁用查詢緩存的原理、操作步驟、適用場景及注意事項,幫助管理員優化MySQL服務器配置,解決高并發環境下的性能瓶頸問題。香港服務器查詢緩存禁用-性能優化關鍵…

深度學習圖像分類數據集—七種動物識別分類

該數據集為圖像分類數據集,適用于ResNet、VGG等卷積神經網絡,SENet、CBAM等注意力機制相關算法,Vision Transformer等Transformer相關算法。 數據集信息介紹:七種動物識別分類:[Chinese_Merganser, panda, Sika_Deer, …

ubuntu22桌面版中文輸入法 fcitx5

不要去 ubuntu software 下載 fcitx5 快捷鍵用不了 直接 sudo apt install fcitx5 \ fcitx5-chinese-addons \ fcitx5-frontend-gtk4 fcitx5-frontend-gtk3 fcitx5-frontend-gtk2 \ fcitx5-frontend-qt5不要在fcitx5里面設置快捷鍵,有些應用可能無法生效 在設置里全…

推客系統小程序終極指南:從0到1構建自動裂變增長引擎,實現業績10倍增長!

📌 前言:為什么傳統營銷越來越難做?在流量紅利消失的今天,企業普遍面臨三大增長困境:獲客成本飆升:電商、教育等行業單客成本突破500元,ROI持續走低用戶粘性差:90%的活動用戶只參與一…

【數據結構】排序算法:歸并與堆

歸并排序:分治策略的經典實現 算法原理 歸并排序采用分治法策略,包含三個關鍵步驟: 分解:遞歸地將數組分成兩半 解決:對子數組進行排序 合并:將兩個有序子數組合并為一個有序數組 C語言實現 #includ…

機器學習-CatBoost

參考書籍:《機器學習-公式推導和代碼實現》 官方文檔提供的原生接口代碼參考書籍的P187~P188 簡介 全稱是Categorical Boosting,由俄羅斯搜索引擎巨頭Yandex于2017年提出。突出的優勢是在于可以高效地處理數據中的類別特征 ML中對類別特征…

MPLS 多協議標簽交換

前言: 多協議標簽交換MPLS(Multiprotocol Label Switching)是一種IP(Internet Protocol)骨干網技術。MPLS在無連接的IP網絡上引入面向連接的標簽交換概念,將第三層路由技術和第二層交換技術相結合&#xf…

CTF Web PHP弱類型比較與布爾值判斷

題目源碼與注釋 <?php show_source("index.php"); // 顯示自身源碼&#xff0c;方便分析 include("flag.php"); // 包含flag變量 $a $_GET[a]; // 獲取GET參數a&#xff0c;抑制報錯// 關鍵判斷 if($a 0 and $a){echo $flag; …

AntV G6動態連線

完整代碼如下 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>AntV G6 動態連線</titl…

puppeteerSharp html轉pdf

部屬到linux 上報錯&#xff1a; Failed to launch browser! /wwwroots/xxx/Chrome/Linux-138.0.7204.92/chrome-linux64/chrome: error while loading shared libraries: libatk-1.0.so.0: cannot open shared object file: No such file or directory 問題服務包缺少依賴&…