C#基礎(202)--類定義,欄位與屬性,自動屬性,方法及常見錯誤

来源:https://www.cnblogs.com/cswzp/archive/2019/03/03/10468162.html
-Advertisement-
Play Games

c#類的定義規範 欄位與屬性的比較: 欄位: 欄位主要是為類的內部做數據交換交互使用,欄位一般是private 欄位可以賦值,也可以取值 當欄位需要為外部數據提供數據的時候,請將欄位封裝為屬性,而不是使用公有欄位,這是面向對象所提倡的。 屬性: 屬性一般是向外提供數據,主要用來描述對象的靜態特征,所 ...


 c#類的定義規範

 

 欄位與屬性的比較:

  欄位:

    欄位主要是為類的內部做數據交換交互使用,欄位一般是private

    欄位可以賦值,也可以取值

    當欄位需要為外部數據提供數據的時候,請將欄位封裝為屬性,而不是使用公有欄位,這是面向對象所提倡的。

  屬性:

    屬性一般是向外提供數據,主要用來描述對象的靜態特征,所以,屬性一般是public的。

    屬性可以根據需要設置為只讀,只寫,提高數據的安全性

自動屬性:

屬性編寫新語法(自動屬性:.NET3.0及其後續版本)

private double height;//身高
public double Height{
    
        get {return height}
        set{height=value]  
}

 

簡化:

public double height{get;set;}

優點:

  簡化屬性代碼

快捷方式:

  prop 然後按倆下TAB

適用要求:

  不能直接操作私有欄位

  不能設置只讀,只寫屬性

  不能添加驗證邏輯

 

 

方法定義要求:

註意事項:

  1. 訪問修飾符:可以省略,預設為private,可以根據需要定義成public
  2. 方法名:一般是動詞或者為動賓短語,採用Pascal,首字母大寫,不能以數字開頭
  3. 參數列表:根據需要添加,也可以省略,參數列表格式為“類型  參數名”的形式,使用逗號分割
  4. 有返回值:使用return返回,return語句不能在有語句,因為不執行
  5. 沒有返回值:如果不返回任何數據,使用void表示

 常見錯誤(3種):

  錯誤1:忘記返回值

  

  解決方法:

  

 

  錯誤2:返回值定義類型和返回數據類型不一致

 

   解決方法:

    修改方法定義的返回值類型

    修改實際返回的數據類型

  錯誤3:變數在使用中超出作用域範圍

 

 變數的分類及其作用域:

  在方法內部的變數,稱為“局部變數”,只能在該方法內部使用

  在方法外部,內部定義的變數,稱為“成員變數”(也叫欄位),可以在內部或者外部使用(很少在外部使用)

 

 

  未完待續,持續更新......

 


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

-Advertisement-
Play Games
更多相關文章
  • 今日興趣新聞: NASA 研製最強推進器,加速度可達每秒 40 公裡,飛火星全靠它 鏈接:https://mbd.baidu.com/newspage/data/landingsuper?context=%7B"nid"%3A"news_11707429683828231737"%7D&n_type ...
  • 新聞 "對於F ,Visual Studio 2019 RC有哪些更新" "Visual Studio 2019 RC現在已經發佈" "C 版本與工具的升級" "如何移植桌面應用程式到.NET Core 3.0" "對於Xamarin開發者,在Visual Studio 2019預覽版2中有哪些更新 ...
  • 1. 創建項目 1.1 新建項目 首先新建一個項目,名為 mysite,命令如下: 運行成功,生成一些目錄: 1.2 啟動伺服器 執行成功,看到輸出如下信息: 在瀏覽器中訪問 ,看到以下信息,表示開啟成功(Django2.x 以下版本不一樣): 1.3 新建應用 現在我們新建一個應用(app),名為 ...
  • 題意 設把$n$個不同元素分成若幹個大小相等的集合的方案個數為$res$,求$m^{res}$模$10^9 401$後的餘數。 (n,m不超過2\ 10^9) 分析 可以知道,所求答案為$m^r \bmod P$其中$r=\sum_{d\mid n} \dfrac{n!}{\frac{n}{m}!^ ...
  • 複雜查詢時,單表對應的po類已不能滿足輸出結果集的映射。 所以有些時候就需要關聯查詢_一對一:通過條件查詢結果每個欄位都唯一 一對一:模型裡面有模型 一對多:模型裡面有集合 多對多:集合裡面有集合 方法一:resultType實現,要根據需求建立一個擴展類來作為resultType的類型。(詳細代碼 ...
  • If標簽:作為判斷入參來使用的,如果符合條件,則把if標簽體內的SQL拼接上。 註意:用if進行判斷是否為空時,不僅要判斷null,也要判斷空字元串‘’; Where標簽:會去掉條件中的第一個and符號。 通過if和where通過判斷可以選擇那些語句來執行,那些語句不執行,生成最終SQL語句 在第一 ...
  • 1.VS 安裝完成後,可以重新配置合適的開發環境 第一步: 第二步: 第三步: 第四步:選擇合適自己的開發環境 這裡我選擇常規,具體的可以看視窗右邊的說明 ...
  • 寫在前面 前幾時在寫業務代碼的時候,看到有用到lock這個方法的,而我竟然並不知道是做什麼用的,所以查找了許多博客文章,弄懂了百分之七八十,在此做下筆記。 感謝博客 http://www.cnblogs.com/wolf-sun/p/4209521.html 的解說,該篇博客大部分內容源自於此。 l ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...