C#學習遇到的問題

1.C#的幾種註釋方法

// 單行註釋  
​  
/\*\*/ 塊註釋  
​  
///說明註釋,註釋之後能夠自動生成說明文檔檔  
​  
#region  摺疊註釋,能夠將代碼摺疊   
#endregion  
只是#region 所在行後面的文字是註釋文字,而其它的#region和#endregion以內的行代碼是有效的,僅僅起摺疊做用

2.vs(visual studio 2019)如何恢復默認設置

流程以下:工具 -> 導入和導出設置 -> 重置全部設置程序員

img

img

而後就能夠重置vs2019 的佈局了!數據庫

3.C#中using關鍵字的做用及用法

using的用途和使用技巧:
  1. 引用命名空間
    引用命名空間,這樣能夠在程序中引用命名空間的類型而沒必要指定詳細的命名空間.

     a) 好比在程序中經常使用的using System.Text;編程

     b) 引用命名空間,並不等於編譯器編譯時加載該命名空間所在的程序集,程序集的加載決定於程序中對該程序集是否存在調用操做,若是代碼中不存在任何調用操做則編譯器將不會加載using引入命名空間所在空間的程序集.所以,在源文件開頭,引入多個命名空間,並不是加載多個程序集,不會形成’過分引用’的弊端c#

  2. 爲命名空間或類型建立別名
    爲命名空間或類型建立別名

          建立別名的緣由在於同一個文件中引入不一樣的命名空間中包括了相同名稱的類型。爲了不出現名稱衝突,能夠經過設定別名來解決.服務器

            例:using SGPoint = ShapMap.Geometries.Pointide

            Using SGPoint = System.Drawing.Point函數

          其實也能夠經過類型全名稱來加以區分,可是最佳解決方案仍是使用using工具

  3. 使用using語句
    using語句容許程序員指定使用資源的對象應當什麼時候釋放資源.using語句中使用的對象必須實現IDisposable接口.此接口提供了Dispose方法,該方法將釋放此對象的資源

    使用規則:佈局

          a) using語句只能用於實現了IDisposable接口的類型,禁止爲不支持IDisposable接口類型使用using語句,不然會出現編譯錯誤學習

          b) using語句適用於清理單個非託管資源的狀況,而多個非託管對象的清理最好以try-finaly來實現,由於嵌套using語句可能存在隱藏的Bug.內層using塊引起異常時,將不能釋放外層using塊的對象資源

    using實質:

    在程序編譯階段,編譯器會自動將using語句生成try-finally語句,並在finally塊中調用對象的Dispose方法,來清理資源.因此,using語句等效於try-finally語句

4.C#關鍵字之overload、override、new詳解。

重載、重寫、覆寫,分別指的是overload、override、new。
1、override重寫:
是在子類中重寫父類中的方法,兩個函數的函數特徵(函數名、參數類型與個數)相同。用於擴展或修改繼承的方法、屬性、索引器或事件的抽象或虛擬實現。提供從基類繼承的成員的新實現,而經過override聲明重寫的方法稱爲基方法。
注意事項:
1.重寫基方法必須具備與override方法相同的簽名。 2.override聲明不能更改virtual方法的可訪問性,且override方法與virtual方法必須具備相同級別訪問修飾符。 3.不能用new、static、virtual修飾符修改override方法。 4.重寫屬性聲明必須指定與繼承的屬性徹底相同的訪問修飾符、類型和名稱。 5.重寫的屬性必須是virtual、abstract或override。 6.不能重寫非虛方法或靜態方法。 7.父類中有abstract,那麼子類同名方法一定有override,若父類中有 virtual方法,子類同名方法不必定是override,多是overload。 8.override一定有父子類關係。
2、overload重載:
在同一個類中方法名相同、參數或返回值不一樣的多個方法即爲方法重載。
注意事項:
1.出如今同一個類中。 2.參數列表不一樣或返回類型和參數列表都不一樣,只有返回類型不一樣不能重載。(參數列表包括參數個數和參數類型)
3、overwrite覆寫:
用new實現。在子類中用 new 關鍵字修飾定義的與父類中同名的方法,也稱爲覆蓋,覆蓋不會改變父類方法的功能。
4、 C#關鍵字之重寫,重載,覆蓋的實例:
//代碼實例演示  
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函數  
 {  
 return x + y;  
 }  
}  
class ChildOne:Parent //子類一繼承父類  
{  
 new public void F() //覆寫(overwrite)父類函數  
 {  
 Console.WriteLine("ChildOne.F()");   
 }  
 public override void G() //重寫(override)父類虛函數,主要實現多態  
 {  
 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();  
 //調用Parent.F()  
 childOne.F();  
 childTwo.F();  
 //實現多態  
 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的從新生成解決方案」和"生成解決方案"的學習

解決方案是什麼:
解決方案是來若干個有聯繫的項目的組合。你生成解決方案,就會把全部自的項目都百給bulid了,省的你一個一個去生成。

好比解決方案裏有3個項目,a,b,c,a項目用到度b項目,b項目用到c項目,它會按順序問給你生成c->b-a,而後把c,b的答dll都放到a的bin目錄下。

從新生成解決方案:
從新生成解決方案顧名思義就是從新編譯每一個文件,這樣速度要滿些,但可靠度高一些。「從新生成」是對全部的文件都從新生成你在解決方案上右鍵,選擇從新生成解決方案的話。 VS會自動幫你都生成一遍的。也就是Bin目錄裏的東西。
生成解決方案:
而生成解決方案則在上次編譯的基礎上編譯那些修改過了的文件,而沒有修改的文件不編譯,相似於數據庫裏的增量備份。「生成」的時候,只對你改動過的文件從新生成,沒有改動過的文件不會從新生成;
清理解決方案:
最後提一下「清理解決方案」,這是在「從新生成解決方案」和「生成解決方案」下面的一個選項,選擇「清理解決方案」將刪除全部中間文件和輸出文件,只留下項目文件和組件文件,之後能夠從這些文件生成中間文件和輸出文件的新實例。其實「清理解決方案」這個過程是在「從新生成解決方案」以前要執行的一個步驟,至此,這三者分別的做用的概念就瞭解完成了。
總結:
這個MSDN上有介紹,簡單地說: 生成解決方案:已是最新的就跳過。 從新生成解決方案:先把已經生成好的所有刪掉,而後再生成一遍。

6.VS2019下C#解決方案生成的文件都是什麼做用?(bin文件、obj文件、properties文件、.cs文件、 .csproj文件、.config文件等)

文件/文件夾

做用

介紹

Bin目錄

用來存放編譯的結果

bin是二進制binrary的英文縮寫,由於最初C編譯的程序文件都是二進制文件,它有Debug和Release兩個版本,分別對應的文件夾爲bin/Debug和bin/Release,這個文件夾是默認的輸出路徑,咱們能夠經過:項目屬性—>配置屬性—>輸出路徑來修改。

obj

用於存放編譯過程當中生成的中間臨時文件

obj是object的縮寫,其中都有debug和release兩個子目錄,分別對應調試版本和發行版本,在.NET中,編譯是分模塊進行的,編譯整個完成後會合併爲一個.DLL或.EXE保存到bin目錄下。由於每次編譯時默認都是採用增量編譯,即只從新編譯改變了的模塊,obj保存每一個模塊的編譯結果,用來加快編譯速度。是否採用增量編譯,能夠經過:項目屬性—>配置屬性—>高級—>增量編譯來設置.

Properties文件夾

定義程序集的屬性

項目屬性文件夾 通常只有一個 AssemblyInfo.cs 類文件,用於保存程序集的信息,如名稱,版本等,這些信息通常與項目屬性面板中的數據對應,不須要手動編寫。

.config文件

Web.config文件向它們所在的目錄和全部子目錄提供配置信息

.cs文件

類模塊代碼文件

源代碼都寫在這裏,主要就看這裏的代碼。

.csproj文件

C#項目文件

建立應用程序所需的引用、數據鏈接、文件夾和文件的信息。用VS打開這個文件就能夠直接打開這個項目,自動生成,不須要看。

.sln

在開發環境中使用的解決方案文件

它將一個或多個項目的全部元素組織到單個的解決方案中。此文件存儲在父項目目錄中.解決方案文件,他是一個或多個.proj(項目)的集合

.aspx

.aspx 是網頁文件,HTML代碼寫在這裏面

Web窗體頁由兩部分組成:視覺元素(HTML、服務器控件和靜態文本)和該頁的編程邏輯。VS將這兩個組成部分分別存儲在一個單獨的文件中,視覺元素在.aspx文件中建立。

.aspx.cs

Web窗體頁的編程邏輯位於一個單獨的類文件中

該文件稱做代碼隱藏類文件(.aspx.cs)

.aspx.resx/.restx

資源文件

資源是在邏輯上有應用程序部署的任何非可執行數據,經過在資源文件中存儲數據,無需從新編譯整個應用程序便可更改數據。

.pdb

PDB (程序數據庫)

文件保持着調試和項目狀態信息,從而能夠對程序的調試配置進行增量連接。

.suo

解決方案用戶選項

記錄全部將與解決方案創建關聯的選項,以便在每次打開時,它都包含您所作的自定義設置。

後記:

文章持續更新,若是喜歡,請拿起大家可愛的小手,給我點個贊吧!

點贊是一種積極的生活態度,贊一個吧!

相關文章
相關標籤/搜索