主頁 > .NET開發 > 20200117 .net 001

20200117 .net 001

2020-09-10 17:58:30 .NET開發

第一部分:面向物件 封裝 繼承(里氏轉換) 多型
第二部分:值型別、參考型別、字串操作
第三部分:集合檔案操作
第四部分:正則運算式
第五部分:XML操作
第六部分:委托、事件
第七部分:反射,

 

1、變數的命名首先我們要保證的就是變數的名稱一定要有意義(就是我們看到了變數的名字,就知道變數在這段程式中的作用)Camel:多余用給變數或者欄位命名,第一個單詞的首字母小寫,其余每個單詞的首字母大寫,我們給欄位命名,前面必須加下劃線,_highSchoolStudentPascal:要求我們每個單詞的首字母都要大寫,其余每個單詞的首字母小寫,HighSchoolStudentint max=	GetMax();int min=	GetMin();2、行程	一個應用程式就是一個行程,而一個行程又是由多個執行緒組成的,行程幫助我們在記憶體中分配應用程式執行所需要的空間,

//存盤著我們當前正在運行的行程
//Process[] pro = Process.GetProcesses();
//foreach (var item in pro)
//{
// //item.Kill();不試的不是爺們
// Console.WriteLine(item.ProcessName);
//}
//使用行程來打開應用程式
//Process.Start("notepad");//打開記事本
//Process.Start("mspaint");//打開畫圖工具
//Process.Start("iexplore", "http://www.baidu.com");
//Process.Start("calc");//打開計算器
//使用行程來打開檔案
//封裝我們要打開的檔案 但是并不去打開這個檔案
ProcessStartInfo psi = new ProcessStartInfo(@"C:\Users\SpringRain\Desktop\打開檔案練習.exe");
//創建行程物件
Process pro = new Process();
//告訴行程要打開的檔案資訊
pro.StartInfo = psi;
//呼叫函式打開
pro.Start();
Console.ReadKey();




---->我們可以通過行程來直接操作應用程式, 3、面向物件復習類決定了物件將要擁有的屬性和行為,

class BaseFile
{
//欄位、屬性、建構式、函式、索引器
private string _filePath;
public string FilePath//ctrl+R+E
{
get { return _filePath; }
set { _filePath = value; }
}

//自動屬性 prop+兩下tab
public string FileName { get; set; }

public BaseFile(string filePath, string fileName)
{
this.FilePath = filePath;
this.FileName = fileName;
}


//設計一個函式 用來打開指定的檔案
public void OpenFile()
{
ProcessStartInfo psi = new ProcessStartInfo(this.FilePath + "\\" + this.FileName);
Process pro = new Process();
pro.StartInfo = psi;
pro.Start();
}
}

封裝:--->減少了大量的冗余代碼--->封裝將一坨很難理解的功能封裝起來,但是對外提供了一個很簡單的使用介面,我們會使用就OK,繼承:--->減少了類中的冗余代碼--->讓類與類產生了關系,為多型打下了基礎,特性:單根性:一個子類只能有一個父類傳遞性:爺爺類 爹類 兒子類里氏轉換:1、子類可以賦值給父類2、如果父類中裝的是子類物件,則可以將這個父類轉換為對應的子類物件---->關鍵字1、is:回傳bool型別,指示是否可以做這個轉換2、as:如果轉換成功,則回傳物件,否則回傳null作用:我們可以將所有的子類都當做是父類來看,針對父類進行編程,寫出通用的代碼,適應需求的不斷改變,	多型:--->虛方法virtual override--->抽象類abstract override--->介面interface 4、關鍵字new1、創建物件--->在堆中開辟空間--->在開辟的堆空間中創建物件--->呼叫物件的建構式2、隱藏父類的成員	this1、代表當前類的物件2、顯示的呼叫自己的建構式base1、顯示呼叫父類的建構式2、呼叫父類的成員5、抽象類實作多型練習模擬將外部的移動存盤設備插到電腦上進行讀寫資料,U盤Read()Write()移動硬碟Read();Write();MP3Read();Write();PlayMusic();手機....平板電腦......6、介面---->介面是一種能力---->介面也是一種規范---->如果你繼承了這個介面,就必須按照介面的要求來實作這個介面,interface I開頭...able結尾7、石頭剪刀布案例玩家--->出拳的方法,是我們指定的電腦--->出拳的方法,隨機的裁判--->判斷輸贏或者平手石頭1 剪刀2 布3玩家贏:石頭1 剪刀2 =-1 剪刀2 布3 =-1 布3 石頭1=2平手:玩家-電腦=0;電腦贏: 8、訪問修飾符public private internal protected protected internalpublic:在哪都可以訪問private:私有的,只能在當前類的內部進行訪問internal:只能在當前程式集中訪問,protected:受保護的,可以在當前類以及該類的子類中訪問注意點:1、能夠修飾類的訪問修飾符只有兩個:public internal(默認就是internal),2、在同一個專案中,public的權限跟internal是一樣的,3、子類的訪問權限不能高于父類, 

  

 

1、匯入命名空間	命名空間就是類的"檔案夾",類就是"檔案夾"中的檔案,需要匯入命名空間	添加參考:		如果我需要在一個專案中,訪問另一個專案中的某一個類			--->添加對另一個專案的參考			--->匯入命名空間2、靜態和非靜態	靜態成員:被static修飾	實體成員:不被static修飾	靜態成員先于實體成員被加載到記憶體中,只有創建了物件,才有實體成員,	靜態類中只能存在靜態成員	呼叫:		靜態成員呼叫:			類名.靜態成員名;		實體成員呼叫:			實體名.實體成員;(實體就是我們的物件)	什么時候使用靜態?		---->作為工具類		---->在整個專案中資源共享,正因為它是資源共享的,所以靜態成員必須要等到整個專案都結束的時候		才會被資源釋放,		在我們的專案中應該盡可能的少使用靜態成員,		繼承是創建物件的程序,3、設計模式		---->單例設計模式			在整個程式中,我們要保證物件必須是唯一的,			實作:				---->第一步:建構式私有化				---->第二步:宣告一個靜態欄位,作為全域唯一的單例物件				---->第三步:宣告一個靜態函式,回傳全域唯一的物件		---->簡單工廠設計模式			核心:把所有的子類都當做父類來看待			練習:				提示用戶分別的輸入兩個數字:				再輸入運算子:回傳一個計算的父類,并呼叫方法得到結果,				Add Sub Cheng Chu	建筑行業最早應用到設計模式這個概念		1、注冊一個公司						2、招兵買馬		3、投標買地		4、安排施工隊開始施工		5、賣樓						設計模式就是用來專門解決一些特定的問題,		4、類別庫	.dll檔案,我們使用類別庫來幫助我們封裝一些常用的功能						5、值型別和參考型別			值型別:int double char bool decimal struct enum	參考型別:string 陣列 自定義類 介面 委托		值型別的值存盤在記憶體的堆疊上,參考型別的值存盤在堆中,	堆疊上存盤資料的效率要高于堆,			值傳遞:把值型別作為引數傳遞,把值本身進行傳遞,		注意:		ref可以把值傳遞改變為參考傳遞,	參考傳遞:把參考型別的值作為引數傳遞,傳遞的是參考,		6、字串的學習	重要特性:		不可變性,我們不管對字串做什么操作,都會在記憶體中產生一塊新的實體,		駐留池		我們可以將一個字串看作是char型別的只讀陣列,	GC:Garbage Collection垃圾回收	,每隔一段時間,會掃描整個記憶體,發現,如果有的空間沒有被指向,則立即把它銷毀,

  

1、StringBuilder	它就是拼接字串的一個工具,拼成完成后,還是需要將它轉回字串,2、ref引數	ref引數側重于將一個值帶到函式中進行改變,再講改變后的值帶出去,ref引數在函式內不用賦值	函式外必須為ref引數賦值,3、out引數4、params可變引數	5、集合的學習	非泛型集合		ArrayList		Hashtable	泛型集合		List<T>		Dictionary<Tkey,Tvalue>6、裝箱和拆箱   裝箱:值型別---->參考型別   拆箱:參考型別--->值型別   我們判斷是否發生了拆箱或者裝箱,首先要判斷這兩種資料型別是否存在繼承關系,   你裝箱的時候拿什么型別裝的箱,你拆的時候,就得拿什么型別去拆,         7、List<T>常用的函式Add():添加單個元素AddRange():添加一個集合Insert():插入一個元素InsertRange():插入一個集合Remove():移除指定的元素RemoveAt():根據下標移除元素RemoveRange():移除一定范圍內的元素ToArray():集合轉換成陣列ToList():陣列轉換成集合 8、編碼格式將字串是怎樣的形式保存為二進制,ascii 2566000 GB2312GBK  GB18030ISO	Unicode		utf-16		utf-8出現亂碼的原因:我們保存這個檔案的時候采取的編碼跟打開這個檔案的時候采取的編碼格式不一致,文本檔案:拖到txt中還能看得懂得就是文本檔案,

  

 

轉載請註明出處,本文鏈接:https://www.uj5u.com/net/2960.html

標籤:ASP.NET

上一篇:已發布的WEB專案,如何掛在服務器或者本機的IIS下

下一篇:C# 中 ConfigureAwait 相關答疑FAQ

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • WebAPI簡介

    Web體系結構: 有三個核心:資源(resource),URL(統一資源識別符號)和表示 他們的關系是這樣的:一個資源由一個URL進行標識,HTTP客戶端使用URL定位資源,表示是從資源回傳資料,媒體型別是資源回傳的資料格式。 接下來我們說下HTTP. HTTP協議的系統是一種無狀態的方式,使用請求/ ......

    uj5u.com 2020-09-09 22:07:47 more
  • asp.net core 3.1 入口:Program.cs中的Main函式

    本文分析Program.cs 中Main()函式中代碼的運行順序分析asp.net core程式的啟動,重點不是剖析原始碼,而是理清程式開始時執行的順序。到呼叫了哪些實體,哪些法方。asp.net core 3.1 的程式入口在專案Program.cs檔案里,如下。ususing System; us ......

    uj5u.com 2020-09-09 22:07:49 more
  • asp.net網站作為websocket服務端的應用該如何寫

    最近被websocket的一個問題困擾了很久,有一個需求是在web網站中搭建websocket服務。客戶端通過網頁與服務器建立連接,然后服務器根據ip給客戶端網頁發送資訊。 其實,這個需求并不難,只是剛開始對websocket的內容不太了解。上網搜索了一下,有通過asp.net core 實作的、有 ......

    uj5u.com 2020-09-09 22:08:02 more
  • ASP.NET 開源匯入匯出庫Magicodes.IE Docker中使用

    Magicodes.IE在Docker中使用 更新歷史 2019.02.13 【Nuget】版本更新到2.0.2 【匯入】修復單列匯入的Bug,單元測驗“OneColumnImporter_Test”。問題見(https://github.com/dotnetcore/Magicodes.IE/is ......

    uj5u.com 2020-09-09 22:08:05 more
  • 在webform中使用ajax

    如果你用過Asp.net webform, 說明你也算是.NET 開發的老兵了。WEBform應該是2011 2013左右,當時還用visual studio 2005、 visual studio 2008。后來基本都用的是MVC。 如果是新開發的專案,估計沒人會用webform技術。但是有些舊版 ......

    uj5u.com 2020-09-09 22:08:50 more
  • iis添加asp.net網站,訪問提示:由于擴展配置問題而無法提供您請求的

    今天在iis服務器配置asp.net網站,遇到一個問題,記錄一下: 問題:由于擴展配置問題而無法提供您請求的頁面。如果該頁面是腳本,請添加處理程式。如果應下載檔案,請添加 MIME 映射。 WindowServer2012服務器,添加角色安裝完.netframework和iis之后,運行aspx頁面 ......

    uj5u.com 2020-09-09 22:10:00 more
  • WebAPI-處理架構

    帶著問題去思考,大家好! 問題1:HTTP請求和回傳相應的HTTP回應資訊之間發生了什么? 1:首先是最底層,托管層,位于WebAPI和底層HTTP堆疊之間 2:其次是 訊息處理程式管道層,這里比如日志和快取。OWIN的參考是將訊息處理程式管道的一些功能下移到堆疊下端的OWIN中間件了。 3:控制器處理 ......

    uj5u.com 2020-09-09 22:11:13 more
  • 微信門戶開發框架-使用指導說明書

    微信門戶應用管理系統,采用基于 MVC + Bootstrap + Ajax + Enterprise Library的技術路線,界面層采用Boostrap + Metronic組合的前端框架,資料訪問層支持Oracle、SQLServer、MySQL、PostgreSQL等資料庫。框架以MVC5,... ......

    uj5u.com 2020-09-09 22:15:18 more
  • WebAPI-HTTP編程模型

    帶著問題去思考,大家好!它是什么?它包含什么?它能干什么? 訊息 HTTP編程模型的核心就是訊息抽象,表示為:HttPRequestMessage,HttpResponseMessage.用于客戶端和服務端之間交換請求和回應訊息。 HttpMethod類包含了一組靜態屬性: private stat ......

    uj5u.com 2020-09-09 22:15:23 more
  • 部署WebApi隨筆

    一、跨域 NuGet參考Microsoft.AspNet.WebApi.Cors WebApiConfig.cs中配置: // Web API 配置和服務 config.EnableCors(new EnableCorsAttribute("*", "*", "*")); 二、清除默認回傳XML格式 ......

    uj5u.com 2020-09-09 22:15:48 more
最新发布
  • C#多執行緒學習(二) 如何操縱一個執行緒

    <a href="https://www.cnblogs.com/x-zhi/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/2943582/20220801082530.png" alt="" /></...

    uj5u.com 2023-04-19 09:17:20 more
  • C#多執行緒學習(二) 如何操縱一個執行緒

    C#多執行緒學習(二) 如何操縱一個執行緒 執行緒學習第一篇:C#多執行緒學習(一) 多執行緒的相關概念 下面我們就動手來創建一個執行緒,使用Thread類創建執行緒時,只需提供執行緒入口即可。(執行緒入口使程式知道該讓這個執行緒干什么事) 在C#中,執行緒入口是通過ThreadStart代理(delegate)來提供的 ......

    uj5u.com 2023-04-19 09:16:49 more
  • 記一次 .NET某醫療器械清洗系統 卡死分析

    <a href="https://www.cnblogs.com/huangxincheng/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/214741/20200614104537.png" alt="" /&g...

    uj5u.com 2023-04-18 08:39:04 more
  • 記一次 .NET某醫療器械清洗系統 卡死分析

    一:背景 1. 講故事 前段時間協助訓練營里的一位朋友分析了一個程式卡死的問題,回過頭來看這個案例比較經典,這篇稍微整理一下供后來者少踩坑吧。 二:WinDbg 分析 1. 為什么會卡死 因為是表單程式,理所當然就是看主執行緒此時正在做什么? 可以用 ~0s ; k 看一下便知。 0:000> k # ......

    uj5u.com 2023-04-18 08:33:10 more
  • SignalR, No Connection with that ID,IIS

    <a href="https://www.cnblogs.com/smartstar/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/u36196.jpg" alt="" /></a>...

    uj5u.com 2023-03-30 17:21:52 more
  • 一次對pool的誤用導致的.net頻繁gc的診斷分析

    <a href="https://www.cnblogs.com/dotnet-diagnostic/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/3115652/20230225090434.png" alt=""...

    uj5u.com 2023-03-28 10:15:33 more
  • 一次對pool的誤用導致的.net頻繁gc的診斷分析

    <a href="https://www.cnblogs.com/dotnet-diagnostic/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/3115652/20230225090434.png" alt=""...

    uj5u.com 2023-03-28 10:13:31 more
  • C#遍歷指定檔案夾中所有檔案的3種方法

    <a href="https://www.cnblogs.com/xbhp/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/957602/20230310105611.png" alt="" /></a&...

    uj5u.com 2023-03-27 14:46:55 more
  • C#/VB.NET:如何將PDF轉為PDF/A

    <a href="https://www.cnblogs.com/Carina-baby/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/2859233/20220427162558.png" alt="" />...

    uj5u.com 2023-03-27 14:46:35 more
  • 武裝你的WEBAPI-OData聚合查詢

    <a href="https://www.cnblogs.com/podolski/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/616093/20140323000327.png" alt="" /><...

    uj5u.com 2023-03-27 14:46:16 more