【C#】第3章學習要點(一)--整體把握

来源:http://www.cnblogs.com/rainmj/archive/2016/06/18/5595656.html
-Advertisement-
Play Games

分類:C#、VS2015 創建日期:2016-06-18 使用教材:(十二五國家級規劃教材)《C#程式設計及應用教程》(第3版) 一、使用別人已經設計好的類簡化你的代碼編寫工作量 當讓你去處理一堆亂七八糟的事情時,要把它弄的有條理,首先需要“先把它分成幾大部分”(劃分為不同的“命名空間”或者“包”) ...


分類:C#、VS2015

創建日期:2016-06-18

使用教材:(十二五國家級規劃教材)《C#程式設計及應用教程》(第3版)

一、使用別人已經設計好的類簡化你的代碼編寫工作量

當讓你去處理一堆亂七八糟的事情時,要把它弄的有條理,首先需要“先把它分成幾大部分”(劃分為不同的“命名空間”或者“包”),然後再把每一部分進行“分類”(每個命名空間下可能有多個類),最後再一件一件地去完成(實現各個類的功能)。

可是,你如何用代碼去描述這些“分類”呢?總得先區分出來你是不是在描述分類吧,這就是class關鍵字的用途。當然,你還得給每個分類起個專門的名字,否則你仍然區分不出來描述的是哪一類的東西。

分類後,就可以通過代碼去描述類中需要實現的功能了。

總體來說,面向對象程式設計的基本處理方式就是:對於有先後關聯的在一個類中就能完成的業務,就在指定的類中按順序一件一件地通過代碼實現(結構化程式設計)。對於沒有先後關聯的業務,就安排多個人(多個類中的多個方法)同時去做(多線程、多進程)。

誰安排?是你。誰負責去執行你安排的任務?是操作系統。

二、會觀察.NET框架包含哪些命名空間

.NET框架已經幫你定義了上萬個類來幫助你簡化代碼編寫工作量,這些類在安裝VS2015時已經全部安裝到了你的機器上並將其分配到了不同的dll文件中,在每個dll文件中,又將所包含的類分配到了不同的命名空間下,你所做的大部分事情就是利用using指令引用你知道的命名空間(至於在哪個dll文件中你不用去考慮,.NET框架會自動幫你做這件事)。所以,你得先瞭解.NET框架下有哪些命名空間。

添加對命名空間的引用後,你就可以直接使用命名空間下包含的這些類實現你要處理的業務邏輯了。

瞭解.NET框架下有哪些命名空間的辦法如下:

(1)運行VS2015,新建項目,選擇一個模板,比如選擇控制台應用程式。

(2)選擇主菜單的【視圖】->【對象瀏覽器】,此時你就會看到控制台應用程式中你可以直接引用的命名空間。

例如,展開mscorlib下的System命名空間,你就會看到Console類,單擊它,就會看到該類中包含的各種方法,單擊某個方法,你就會看到它的解釋。如下圖所示:

image

一定要學會用這種辦法找到你需要的東西,看到了嗎?教材中告訴你的僅僅是其中最常用的幾個類和方法,實際項目中用到的可遠遠不止這些。只有這樣,你才能真正做到舉一反三,而不是別人教一個你會一個。

三、學習開源架構開闊你的思路

除了.NET框架內置的類以外,網上還有相當多的開源架構(裡面也包含很多類)設計的都很漂亮,分析這些架構的源代碼,學習這些架構的基本設計思路,逐步開闊你的視野,然後把它變成你自己的思想才是正道,而不是直接把人家的源程式拿來用於項目。原因很簡單,不論是哪個公司,開源的東西都是經過開發者精心“過濾”的,而被過濾掉的恰恰是項目中最關鍵的部分--“性能”和高級功能。換句話說,人家只是想通過開源的代碼告訴你基本實現思路,說到底也只是“請君入瓮”的一種營銷策略而已,如果所有核心代碼都給你開源了,那人家的公司豈不是早就被那些只會盜取別人成果的無良公司吃掉了,呵呵。

IBM、微軟、HP、蘋果、谷歌、……,所有公司都是這麼乾的,既有開源的東西(不要錢,但是功能和性能都有限制),同時也有不開源的東西(要錢,所有功能都有,性能也沒有限制)。所以,別為了吹捧自己的觀點就只強調哪家公司的某一個方面,為了攻擊別人的觀點就只強調哪家公司的另一個方面,見到網上整天爭來爭去哪個好那個不好,說到底不還都是在討論人家美國公司給你的東西嗎。

不管怎樣折騰,直接把人家開源的源程式拿來用於項目成果,充其量也只是一個跟屁蟲,區別僅僅是跟的是誰的屁股。

記住:“開源”也好,“免費”也好,都是別人給你嘗嘗味道的糖,是供你學慣用的,別天真的把它拿來當飯吃。或者說,學習期間,都瞭解瞭解,這樣在實際用到時你才能知道目標在哪。只知其一,不知其二,你自己說的再天花亂墜,別人也不會認同你的看法。

四、本章學習要點

1、學會自己定義類(class)

2、學會自己定義結構(struct)

3、掌握屬性的基本用法

4、掌握方法的基本用法

5、理解事件的基本概念和基本用法

6、理解類的封裝、繼承、多態性

7、理解如何將圖形作為對象(高級內容)

8、掌握日期和時間處理的基本用法

9、掌握隨機數的基本用法

10、掌握定時器的基本用法

11、掌握基本數學運算的基本用法

五、本章示例截圖

本章源程式(VS2015版)的示例截圖如下:

image

補充例子中的部分運行截圖如下(幫助你理解如何利用繼承實現複雜功能):

image


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

-Advertisement-
Play Games
更多相關文章
  • .Net中提供了許多方便使用的方法,包括在處理文件中查找文件、拷貝文件等,今天實現的是通過簡易的程式實現增量的備份文件。 首先需要的是選擇備份源文件路徑SourcePath和備份目標文件路徑DestinationPath,然後通過StopWatch統計拷貝所耗費的時間。(註意:使用StopWatch ...
  • C# Code 1 2 3 4 5 6 7 8 9 10 ... ...
  • 第一部分 瞭解C# C#是微軟公司在2000年7月發佈的一種全新且簡單、安全、面向對象的程式設計語言,是專門為.NET的應用而開發的。體現了當今最新的程式設計技術的功能和精華。.NET框架為C#提供了一個強大的、易用的、邏輯結構一致的設計環境。其特點: 語言簡潔 保留了C++的強大功能; 快速應用開 ...
  • 普通上傳 view: Controller: Ajax上傳 用普通的ajax提交表單的時候,不能把文件流傳到後端去,所以要用到jquery.form.js jquery.form.js到官網下載或者從這裡下載:http://pan.baidu.com/s/1c2JS60C view: Control ...
  • 原文: "Controller methods and views" 作者: "Rick Anderson" 翻譯: "謝煬(Kiler)" 校對: "孟帥洋(書緣)" 、 "張仁建(第二年.夏)" 、 "許登洋(Seay)" 、 "姚阿勇(Dr.Yao)" 、 "婁宇(Lyrics)" 我們已經初 ...
  • 無錫一個2線城市,本地人,今年29了~自身情況老婆快生小孩啦~ 當前公司技術部搬去上海了~我由於家庭情況不能去上海,領導留我在無錫繼續做~但身邊一個人交流不方便便有了離職想法。 主要想找個公司長期發展,不想換來換去,現在有2家公司都發了off. A公司,9.5K,離家進一點走過去10分鐘,大小休(2 ...
  • 昨天Insus.NET有實現《使用ViewModel來實現多個Model傳送至視圖》http://www.cnblogs.com/insus/p/5594134.html 那今天Insus.NET想使用另一種方法來實現這個傳遞多個model至視圖中去。ExpandoObject動態對象。一些數據還是 ...
  • 我們在開發微信相關的應用的時候,一般需要完善的基礎模塊支持,包括微信公眾號,微信企業號,以及一些業務模塊的支持,一般隨著功能的增多,我們需要非常清晰的界定他們的關係。模塊的分拆以及合併往往需要考慮的代碼的重用,而且儘量做到簡單而不重覆。本篇隨筆基於我的微信框架的各個模塊的功能介紹以及他們關係的描述。 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...