C#基礎整理(二)

来源:http://www.cnblogs.com/VSMinos/archive/2017/09/28/7607731.html
-Advertisement-
Play Games

1、變數類型int、double、string、char、bool、decimal變數使用規則:先聲明,再賦值,最後使用 2、命名規範:Camel:第一個單詞首字母小寫,其他單詞首字母大寫,其餘字母小寫Pascal:每個單詞的首字母都大寫,其餘字母小寫 5、常量聲明常量的語法:const 變數類型 ...


1、變數類型
int、double、string、char、bool、decimal
變數使用規則:先聲明,再賦值,最後使用

2、命名規範:
Camel:第一個單詞首字母小寫,其他單詞首字母大寫,其餘字母小寫
Pascal:每個單詞的首字母都大寫,其餘字母小寫

5、常量
聲明常量的語法:
const 變數類型 變數名=值;
例:public const int Che_SHI = 10001;
常量一旦賦值,不能被重新賦值

6、枚舉(規範我們的開發)
語法:
[public] enum 枚舉名
{
值1,
值2,
值3,
...........
}

[]中表示可以省略
Public:訪問修飾符,公開的公共的,修飾一個成員的訪問許可權。
enum:關鍵字,聲明枚舉的關鍵字
枚舉名:要符合pascal命名規範
將枚舉聲明到命名空間的下麵,類的外 面,表示這個命名空間下,所有的類都可以使用這個枚舉。
枚舉就是一個變數類型,像int、string這樣
只是枚舉聲明、賦值、使用的方式跟那些普通的變數類型不一樣。
枚舉是自己寫的變數類型

我們可以將一個枚舉類型的變數跟int類型和string類型互相轉換。
枚舉類型預設是跟int類型相互相容的,所以可以通過強制類型轉換的語法互相轉換。
當轉換一個枚舉中沒有的值的時候,不會拋異常,而是直接將數字顯示出來。

枚舉同樣也可以跟string類型互相轉換,如果將枚舉類型轉換成string類型,則直接調用ToString().
如果將字元串轉換成枚舉類型則需要下麵這樣一行代碼:
(要轉換的枚舉類型)Enum.Parse(typeof(要轉換的枚舉類型),"要轉換的字元串");
調用Enum類里的Parse()方法來幫助我們將一個字元串轉換成對應的枚舉類型
如果轉換的字元串是數字,則就算枚舉中沒有,也會不會拋異常。
如果轉換的字元串是文本,如果枚舉中沒有,則會拋出異常。


7、結構
為了一次性聲明多個不同類型的變數(欄位)
語法:
[public] struct 結構名
{
public string name;
成員//欄位
}

程式中欄位能存多個值,變數只能存一個值。
欄位起名規範,每個欄位前面加一個下劃線,來區分變數和欄位。

8、數組
一次性存儲多個相同類型的變數就用數組。
語法:
數組類型[] 數組名=new 數組類型[數組長度];
int []nums=new int [5];
數組的長度一旦固定了,就不能再被改變了

數組擁有初值
int數組初值 0
string數組初值 null(不占空間)
bool數組初值 false

四種寫法
int[] nums = new int[5];
int[] nums = { 1, 2, 3, 4, 5 };(常用)
int[] nums = new int[5] { 1, 2, 3, 4, 5 };
int[] nums = new int[] { 1, 2, 3, 4, 5, };

int範圍 最大值 int.MaxValue
最小值 int.MinValue
可以通過下標或者索引去訪問數組中的元素

9、冒泡排序
將一個數組中的元素按照從大到小或者從小到達的順序進行排列。
int[] nums = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
Array.Sort(nums); //對數組進行升序排列
Array.Reverse(nums); //對數組進行倒序排列
不需要返回值,需要一個數組作為參數

10、方法/函數
函數就是將一堆代碼進行重用的一種機制。
函數的語法:
[public]static 返回值類型 方法名([參數列表])
{
方法體:
}
public static int AddSum(int a,int b)
{
return a+b;
}

返回值類型:如果不需要寫返回值,寫void。有返回值的用return返回
參數列表:完成這個方法所必須要提供給這個方法的參數。有些方法不需要寫參數。

11、return的用法
1)在方法中返回要返回的值。
2)立即結束本次方法。
3)一層一層的門,return只返回上一層。

12、我們在Main()函數中,調用Test()函數。
我們管Main()函數稱之為調用者,管Test()函數稱之為被調用者。
如果Test()想要得到Main()的值:
1)傳遞參數。
2)使用靜態欄位來模擬全局變數。

如果Main()想要得到Test()的值:
1)返回值

13、不管是實參還是形參,都是在記憶體中開闢了空間的。

14、方法的功能一定要單一。
方法中不要出現提示用戶輸入。

15.out、ref、params
1)、out參數。
如果你在一個方法中,返回多個相同類型的值的時候,可以考慮返回一個數組。
但是,如果返回多個不同類型的值的時候,返回數組就不行了,那麼這個時候,
我們可以考慮使用out參數。
out參數在一個方法中可以返回多個不同類型的值。
out參數要求在方法的內部必須為其賦值

2)、ref參數
能夠將一個變數帶入一個方法中進行改變,改變完成後,再將改變後的值帶出方法。
ref參數要求在方法外必須為其賦值,而方法內可以不賦值。
ref不需要創建一個新的變數來接收返回值。

ref是 有進有出,而out是 只出不進。
3)、params可變參數
將實參列表中跟可變參數數組類型一致的元素都當做數組的元素去處理。
params可變參數必須是形參列表中的最後一個元素。

public static void Test(string name,params int [] score)

16.方法的重載
概念:方法的重載指的就是方法的名稱相同,但是參數不同。
參數不同,分為兩種情況
1)、如果參數的個數相同,那麼參數的類型就不能相同。
2)、如果參數的類型相同,那麼參數的個數就不能相同。
***方法的重載跟返回值沒有關係。

用哪個就傳哪個參
方法的重載就是可以放任何的參數

17、字元串的用法
字元串的length可以用來比較字的長度

18.方法中改變數組,不需要返回值來接收就可以改變。數組在方法中是個例外。

19.Cosole的幾種方法
1)改變字體顏色
Console.ForegroundColor = ConsoleColor.Yellow;
2)console.clear(); 清屏
3)console.readkey(true);不顯示輸出的按鍵
4)輸出時,保留小數點後兩位
Double avg=10/3;
Console.WriteLine("{0:0.00}", avg);


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

-Advertisement-
Play Games
更多相關文章
  • Unix文件是以位元組序列組成的信息載體(container),內核不解釋文件的內容。 Linux文件系統中的文件是數據的集合,文件系統不僅包含著文件中的數據而且還有系統的結構,所有Linux用戶和程式看到的文件、目錄、軟鏈接及文件保護信息等都存儲在其中。 Linux最早的文件系統是Minux,但是專 ...
  • 腳本的作用不明而喻,在無數次的啟動開發板過程中,不斷登錄確確實實占用了我大量的時間及精力; 於是上網根據自己的實際編寫了一個腳本: !/usr/bin/expect -f的意義:http://blog.csdn.net/zhu_tianwei/article/details/44180637 如果在 ...
  • 值類型:(原話定義)值類型的變數直接包含值,換言之變數引用的位置就是值在記憶體中實際存儲的位置。 這句話也就是說,值類型的賦值是不會引用同一記憶體位置的,除了out和ref參數,更改原始變數不影響其它變數的值(因為變數歌有各的位置) 棧 依次向下: int number1 =42; char lette ...
  • 如果說界面設計,那麼自適應問題一定無法避免,今天就來分享一下,wpf如何實現自適應,先看一下效果:(文末添加源代碼下載) 基本思路就是用 Grid 的網格,進行寬度的自動填充適應, 不過對於複雜的頁面,佈局起來可能比較麻煩, 這裡推薦結合 DockPanel 和 Grid 一起使用,對於頁面一些不需 ...
  • 第一步:上圖 第二步:上代碼 >>>>>>>>>>>源代碼下載<<<<<<<<< 第三步:說明 版本說明 v2.1 2017年9月28日19:37:39 qq1222698好多年不更新,應浩哥的要求,增加一些功能1、去掉自動回覆功能,加上自動發送功能2、增加回車功能、自動crc功能3、不再打包,自己 ...
  • 在繼承中,子類擁有父類的一切屬性和行為,而且任何父類出現的地方,都可以用子類來替代;可謂“長江後浪推前浪”啊 object是一切類的父類 泛型在編譯的時候確定類型(延遲思想); 泛型:用一個方法,來滿足不同類型的參數;泛型實際上是語法糖,由編譯器提供功能;沒有性能損失 泛型參數的個數可以隨便定義 貼 ...
  • 第一次寫隨筆,心裡有一些小激動。 第一次做金蝶二開,所以一臉懵逼,搜遍博客園和CSDN,都沒找到相關的帖子。 最後在金蝶研發部某大佬的幫助下,最終得逞所願!在此感謝這位大佬! 我的做法是在插件表單上添加一個進度條進行隱藏,添加進度條的目的是防止初始化載入後,防止線程被銷毀。 至於我的這個做法能不能入 ...
  • 參考:http://blog.csdn.net/songyefei/article/details/7397296 元數據交換 通過前兩篇的學習,我們瞭解了WCF通信的一些基本原理,我們知道,WCF服務端和客戶端通過共用元數據(包括服務協定、伺服器終結點信息)在兩個終結點上建立通道從而進行通信。我們 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...