1.C#的幾種注釋方法
// 單行注釋
/**/ 塊注釋
///說明注釋幻工,注釋以后可以自動生成說明文檔檔
#region 折疊注釋哮独,可以將代碼折疊
#endregion
只是#region 所在行后面的文字是注釋文字,而其它的#region和#endregion之內(nèi)的行代碼是有效的速梗,僅僅起折疊作用
2.vs(visual studio 2019)如何恢復(fù)默認(rèn)設(shè)置
流程如下:工具 -> 導(dǎo)入和導(dǎo)出設(shè)置 -> 重置所有設(shè)置
然后就可以重置vs2019 的布局了籍茧!
3.C#中using關(guān)鍵字的作用及用法
using的用途和使用技巧:
引用命名空間
> 引用命名空間版述,這樣可以在程序中引用命名空間的類型而不必指定詳細(xì)的命名空間. > > a) 比如在程序中常用的using System.Text; > > b) 引用命名空間,并不等于編譯器編譯時加載該命名空間所在的程序集寞冯,程序集的加載決定于程序中對該程序集是否存在調(diào)用操作渴析,如果代碼中不存在任何調(diào)用操作則編譯器將不會加載using引入命名空間所在空間的程序集.因此,在源文件開頭吮龄,引入多個命名空間俭茧,并非加載多個程序集,不會造成’過度引用’的弊端
為命名空間或類型創(chuàng)建別名
> 為命名空間或類型創(chuàng)建別名 > > 創(chuàng)建別名的原因在于同一個文件中引入不同的命名空間中包括了相同名稱的類型漓帚。為了避免出現(xiàn)名稱沖突母债,可以通過設(shè)定別名來解決. > > 例:using SGPoint = ShapMap.Geometries.Point > > Using SGPoint = System.Drawing.Point > > 其實也可以通過類型全名稱來加以區(qū)分,但是最佳解決方案還是使用using
使用using語句
> using語句允許程序員指定使用資源的對象應(yīng)當(dāng)何時釋放資源.using語句中使用的對象必須實現(xiàn)IDisposable接口.此接口提供了Dispose方法尝抖,該方法將釋放此對象的資源 > > 使用規(guī)則: > > a) using語句只能用于實現(xiàn)了IDisposable接口的類型毡们,禁止為不支持IDisposable接口類型使用using語句,否則會出現(xiàn)編譯錯誤 > > b) using語句適用于清理單個非托管資源的情況昧辽,而多個非托管對象的清理最好以try-finaly來實現(xiàn)衙熔,因為嵌套using語句可能存在隱藏的Bug.內(nèi)層using塊引發(fā)異常時,將不能釋放外層using塊的對象資源 > > using實質(zhì): > > 在程序編譯階段搅荞,編譯器會自動將using語句生成try-finally語句青责,并在finally塊中調(diào)用對象的Dispose方法,來清理資源.所以取具,using語句等效于try-finally語句
4.C#關(guān)鍵字之overload、override扁耐、new詳解暇检。
重載、重寫婉称、覆寫块仆,分別指的是overload构蹬、override、new悔据。
一庄敛、override重寫:
是在子類中重寫父類中的方法,兩個函數(shù)的函數(shù)特征(函數(shù)名科汗、參數(shù)類型與個數(shù))相同藻烤。用于擴(kuò)展或修改繼承的方法、屬性头滔、索引器或事件的抽象或虛擬實現(xiàn)怖亭。提供從基類繼承的成員的新實現(xiàn),而通過override聲明重寫的方法稱為基方法坤检。
注意事項:
1.重寫基方法必須具有與override方法相同的簽名兴猩。 2.override聲明不能更改virtual方法的可訪問性,且override方法與virtual方法必須具有相同級別訪問修飾符早歇。 3.不能用new倾芝、static、virtual修飾符修改override方法箭跳。 4.重寫屬性聲明必須指定與繼承的屬性完全相同的訪問修飾符晨另、類型和名稱。 5.重寫的屬性必須是virtual衅码、abstract或override拯刁。 6.不能重寫非虛方法或靜態(tài)方法。 7.父類中有abstract逝段,那么子類同名方法必定有override垛玻,若父類中有 virtual方法,子類同名方法不一定是override奶躯,可能是overload帚桩。 8.override必定有父子類關(guān)系。
二嘹黔、overload重載:
在同一個類中方法名相同账嚎、參數(shù)或返回值不同的多個方法即為方法重載。
注意事項:
1.出現(xiàn)在同一個類中儡蔓。 2.參數(shù)列表不同或返回類型和參數(shù)列表都不同郭蕉,只有返回類型不同不能重載。(參數(shù)列表包括參數(shù)個數(shù)和參數(shù)類型)
三喂江、overwrite覆寫:
用new實現(xiàn)召锈。在子類中用 new 關(guān)鍵字修飾定義的與父類中同名的方法,也稱為覆蓋获询,覆蓋不會改變父類方法的功能涨岁。
四拐袜、 C#關(guān)鍵字之重寫,重載梢薪,覆蓋的實例:
//代碼實例演示
class Parent
{
public void F()
{
Console.WriteLine("Parent.F()");
}
public virtual void G() //抽象方法
{
Console.WriteLine("Parent.G()");
}
public int Add(int x, int y)
{
return x + y;
}
public float Add(float x, float y) //重載(overload)Add函數(shù)
{
return x + y;
}
}
class ChildOne:Parent //子類一繼承父類
{
new public void F() //覆寫(overwrite)父類函數(shù)
{
Console.WriteLine("ChildOne.F()");
}
public override void G() //重寫(override)父類虛函數(shù),主要實現(xiàn)多態(tài)
{
Console.WriteLine("ChildOne.G()");
}
}
class ChildTwo:Parent //子類二繼承父類
{
new public void F()
{
Console.WriteLine("ChildTwo.F()");
}
public override void G()
{
Console.WriteLine("ChildTwo.G()");
}
}
class Program
{
static void Main(string[] args)
{
Parent childOne = new ChildOne();
Parent childTwo = new ChildTwo();
//調(diào)用Parent.F()
childOne.F();
childTwo.F();
//實現(xiàn)多態(tài)
childOne.G();
childTwo.G();
Parent load = new Parent();
//重載(overload)
Console.WriteLine(load.Add(1, 2));
Console.WriteLine(load.Add(3.4f, 4.5f));
Console.Read();
}
}
5.c#之vs2019的重新生成解決方案”和"生成解決方案"的學(xué)習(xí)
解決方案是什么:
解決方案是來若干個有聯(lián)系的項目的組合蹬铺。你生成解決方案,就會把所有自的項目都百給bulid了秉撇,省的你一個一個去生成甜攀。
比如解決方案里有3個項目,a,b,c,a項目用到度b項目畜疾,b項目用到c項目赴邻,它會按順序問給你生成c->b-a,然后把c,b的答dll都放到a的bin目錄下啡捶。
重新生成解決方案:
重新生成解決方案顧名思義就是重新編譯每個文件姥敛,這樣速度要滿些,但可靠度高一些瞎暑⊥玻“重新生成”是對所有的文件都重新生成你在解決方案上右鍵,選擇重新生成解決方案的話了赌。VS會自動幫你都生成一遍的墨榄。也就是Bin目錄里的東西。
生成解決方案:
而生成解決方案則在上次編譯的基礎(chǔ)上編譯那些修改過了的文件勿她,而沒有修改的文件不編譯袄秩,類似于數(shù)據(jù)庫里的增量備份》瓴ⅲ“生成”的時候之剧,只對你改動過的文件重新生成,沒有改動過的文件不會重新生成砍聊;
清理解決方案:
最后提一下“清理解決方案”背稼,這是在“重新生成解決方案”和“生成解決方案”下面的一個選項,選擇“清理解決方案”將刪除所有中間文件和輸出文件玻蝌,只留下項目文件和組件文件蟹肘,以后可以從這些文件生成中間文件和輸出文件的新實例。其實“清理解決方案”這個過程是在“重新生成解決方案”之前要執(zhí)行的一個步驟俯树,至此帘腹,這三者分別的作用的概念就了解完成了。
總結(jié):
這個MSDN上有介紹许饿,簡單地說: 生成解決方案:已經(jīng)是最新的就跳過阳欲。 重新生成解決方案:先把已經(jīng)生成好的全部刪掉,然后再生成一遍。
6.VS2019下C#解決方案生成的文件都是什么作用胸完?(bin文件、obj文件翘贮、properties文件赊窥、.cs文件、 .csproj文件狸页、.config文件等)
文件/文件夾 | 作用 | 介紹 |
---|---|---|
Bin目錄 | 用來存放編譯的結(jié)果 | bin是二進(jìn)制binrary的英文縮寫锨能,因為最初C編譯的程序文件都是二進(jìn)制文件,它有Debug和Release兩個版本芍耘,分別對應(yīng)的文件夾為bin/Debug和bin/Release址遇,這個文件夾是默認(rèn)的輸出路徑,我們可以通過:項目屬性—>配置屬性—>輸出路徑來修改斋竞。 |
obj | 用于存放編譯過程中生成的中間臨時文件 | obj是object的縮寫倔约,其中都有debug和release兩個子目錄,分別對應(yīng)調(diào)試版本和發(fā)行版本坝初,在.NET中浸剩,編譯是分模塊進(jìn)行的,編譯整個完成后會合并為一個.DLL或.EXE保存到bin目錄下鳄袍。因為每次編譯時默認(rèn)都是采用增量編譯绢要,即只重新編譯改變了的模塊,obj保存每個模塊的編譯結(jié)果拗小,用來加快編譯速度重罪。是否采用增量編譯,可以通過:項目屬性—>配置屬性—>高級—>增量編譯來設(shè)置. |
Properties文件夾 | 定義程序集的屬性 | 項目屬性文件夾 一般只有一個 AssemblyInfo.cs 類文件哀九,用于保存程序集的信息剿配,如名稱,版本等勾栗,這些信息一般與項目屬性面板中的數(shù)據(jù)對應(yīng)惨篱,不需要手動編寫。 |
.config文件 | Web.config文件向它們所在的目錄和所有子目錄提供配置信息 | |
.cs文件 | 類模塊代碼文件 | 源代碼都寫在這里围俘,主要就看這里的代碼砸讳。 |
.csproj文件 | C#項目文件 | 創(chuàng)建應(yīng)用程序所需的引用、數(shù)據(jù)連接界牡、文件夾和文件的信息簿寂。用VS打開這個文件就可以直接打開這個項目,自動生成宿亡,不需要看常遂。 |
.sln | 在開發(fā)環(huán)境中使用的解決方案文件 | 它將一個或多個項目的所有元素組織到單個的解決方案中。此文件存儲在父項目目錄中.解決方案文件挽荠,他是一個或多個.proj(項目)的集合 |
.aspx | .aspx 是網(wǎng)頁文件克胳,HTML代碼寫在這里面 | Web窗體頁由兩部分組成:視覺元素(HTML平绩、服務(wù)器控件和靜態(tài)文本)和該頁的編程邏輯。VS將這兩個組成部分分別存儲在一個單獨的文件中漠另,視覺元素在.aspx文件中創(chuàng)建捏雌。 |
.aspx.cs | Web窗體頁的編程邏輯位于一個單獨的類文件中 | 該文件稱作代碼隱藏類文件(.aspx.cs) |
.aspx.resx/.restx | 資源文件 | 資源是在邏輯上有應(yīng)用程序部署的任何非可執(zhí)行數(shù)據(jù),通過在資源文件中存儲數(shù)據(jù)笆搓,無需重新編譯整個應(yīng)用程序即可更改數(shù)據(jù)性湿。 |
.pdb | PDB (程序數(shù)據(jù)庫) | 文件保持著調(diào)試和項目狀態(tài)信息,從而可以對程序的調(diào)試配置進(jìn)行增量鏈接满败。 |
.suo | 解決方案用戶選項 | 記錄所有將與解決方案建立關(guān)聯(lián)的選項肤频,以便在每次打開時,它都包含您所做的自定義設(shè)置算墨。 |
后記:
文章持續(xù)更新宵荒,如果喜歡,請拿起你們可愛的小手米同,給我點個贊吧骇扇!
點贊是一種積極的生活態(tài)度,贊一個吧面粮!