溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C#名詞解釋

發(fā)布時(shí)間:2020-06-18 10:40:42 來源:網(wǎng)絡(luò) 閱讀:541 作者:黎黎原上草 欄目:編程語言

C#語言中的幾個(gè)比較基礎(chǔ)的名詞解釋:

1、類 和 類的結(jié)構(gòu):
    class【引用類型,繼承自system.object類】和struct【值類型,繼承自system.valuetype類】都是可以用來定義一個(gè)類的。
    類的定義:
     class myclass
      {
        }
    而如果我們確定這個(gè)myclass類的公共、私有以及保護(hù)等類型的時(shí)候,就要在前面加上:
    public/private/protected  class myclass
       {
          }
PS:所謂的基類,可以理解成像上面說過的class類就是從system.object類繼承而來的,那么我們就稱呼system.object類為基類。
    引入另一個(gè)概念:接口【interface】。
       接口:就是當(dāng)class想繼承幾個(gè)類的時(shí)候,但是沒有辦法實(shí)現(xiàn)的情況下,就要借助接口來給與幫助。
     例子:public partial class Save : System.Web.UI.Page;
    在上面這個(gè)例子里面,我們定義的是一個(gè)局部的類save,而這個(gè)類繼承了System.Web.UI.Page。
  
     類和結(jié)構(gòu):
    一、類是引用類型在堆上分配,類的實(shí)例進(jìn)行賦值只是復(fù)制了引用,都指向同一段實(shí)際對(duì)象分配的內(nèi)存;
        類有構(gòu)造函數(shù)和析構(gòu)函數(shù){這兩個(gè)函數(shù)都是實(shí)函數(shù),都不能使虛函數(shù)。}
        類可以繼承和被繼承。
    二、結(jié)構(gòu)是值類型【struct】在棧上分配(雖然訪問時(shí)間比較堆要少,但是棧的資源有限),結(jié)構(gòu)的賦值將分配產(chǎn)生一個(gè)        新的對(duì)象;
        結(jié)構(gòu)沒有構(gòu)造函數(shù),但可以添加。結(jié)構(gòu)沒有析構(gòu)函數(shù);
        結(jié)構(gòu)不可以繼承自另一個(gè)結(jié)構(gòu)或者是被繼承,但和類一樣可以繼承自接口。
【堆和棧的概念:
        堆:在事先不知道程序所需要的對(duì)象的數(shù)量和大小或者是對(duì)象太大不適合用堆棧分配器的情況下,用來動(dòng)態(tài)分配和釋           放程序所使用的對(duì)象。
        棧:是一種數(shù)據(jù)結(jié)構(gòu),是只能在某一端插入和刪除線性表。原則是后進(jìn)先出。】
2、對(duì)象:
    我們已經(jīng)知道了類的概念了,而【具有相同或者是相似的性質(zhì)的】對(duì)象的抽象就是類??梢赃@樣子理解就是:
        對(duì)象的抽象就是類,而類的具象就是對(duì)象?;蛘哒f類的實(shí)例化就是對(duì)象。
PS:類的成員有:屬性、方法名、字段;
    而對(duì)象的實(shí)例名也包括上面這三項(xiàng),所以可以更清楚的解釋這兩者之間的關(guān)系。
   
3、屬性和方法:
    舉幾個(gè)屬性的例子:
        Response.height/weight/color;等等
    舉幾個(gè)方法的例子:
        console.write/writeline/beep;等等
    用很土的方式去解釋這兩者之間的區(qū)別的話:屬性就相當(dāng)于說是人的身高體重之類的,后面不跟括號(hào),而方法則指的是舉動(dòng)行動(dòng)方式之類的,后面是要跟括號(hào)的。
       例子: Response.Write("刪除成功!");
              Response.End();

4、函數(shù):
     一、函數(shù)的定義要有一下幾個(gè)部分:
          兩個(gè)關(guān)鍵字:static【靜態(tài):static void Main(string[] args);就是表示的是將函數(shù)Main中的代碼存放在靜態(tài)存儲(chǔ)區(qū)的;而且還表示我們聲明的函數(shù)Main是個(gè)靜態(tài)函數(shù)?!亢蛌oid【沒有返回值的?!?br />           函數(shù)名后面要跟圓括號(hào),就像上例中的Main()。
          而函數(shù)后面還有一個(gè)要執(zhí)行的代碼塊。
          【一個(gè)函數(shù)不僅僅只是一個(gè)簡(jiǎn)單的名詞,它代表了一個(gè)小程序的功能的體現(xiàn)?!?br />        例子:
            class program
              {
               static void Write()
                {
                  console.Writeline("你來自火星!");                 
                 }
               static void Main(string[] args)
                 {
                   Write();
                   Console.readkey();                 
                   }               
                }
    二、賦值:
         先看個(gè)例子:
            string cmdText = "delete from StudentInfo where StudentID = @StudentID";
            首先我們分析一下這個(gè)例子,第一個(gè)部分就是我們聲明的類型:字符串;而cmdText就是我們聲明的字符串的名字,而后面引號(hào)里面的字符串就是直接賦給cmdText這個(gè)字符串常量的值。
            還有諸如int、double、float等等之類的也跟上面是類似的。
            ps:在聲明了常量之后,一般都是要賦值的,也是我們所說的初始化。
             例子:int xsize=40,ysize;
               雖然這里ysize并沒有賦值,但是當(dāng)我們?cè)诔绦蚶锩孢\(yùn)行要用到的時(shí)候還是要給它賦初值【初始化】的。
    三、函數(shù)的調(diào)用:
         同樣的我們先看一個(gè)例子:【姑且先不管他是否完全正確,現(xiàn)在我先注釋一下!】
               #include <iostream>
                using namespace std; //命名空間的名字叫做std;
            
               void fibo(int &a,int &b,int &c)//定義函數(shù)fibo;
                    {
   
                      for(int iter=2; iter < 40; iter++)
                         {
                            c =a+b;
                            cout <<"F(" <<iter <<")\t=\t" <<c<<endl;
                             a=b;
                             b=c;
                          }
                      }//函數(shù)體,執(zhí)行了函數(shù)的功能代碼;

                     int main() {
                     int x0, x1, x2=0;
                     cout << "Podaj F(0) = ";
                     cin >> x0;
                     cout << "Podaj F(1) = ";
                     cin >> x1;

                     fibo(x0,x1,x2);//調(diào)用函數(shù)。


                    return 0;
                      }
ps:函數(shù)每被調(diào)用一次只會(huì)返回一個(gè)值。
      四、構(gòu)造函數(shù)和析構(gòu)函數(shù):
            在上面已經(jīng)提到過了構(gòu)造函數(shù)和析構(gòu)函數(shù),現(xiàn)在更深入的理解一下:
               例子:class Myclass
                       {
                         public Myclass()
                            {
                                }
                              }
       在這例子中,我們看到構(gòu)造函數(shù)Myclass和包含他的類是同名的,而且這個(gè)函數(shù)沒有參數(shù),但是是可以帶參數(shù)的【這個(gè)很重要!】。由于這個(gè)public,說明這個(gè)函數(shù)是個(gè)公共函數(shù),所以類的對(duì)象可以使用這個(gè)構(gòu)造函數(shù)進(jìn)行實(shí)例化。
               在。NET中使用的析構(gòu)函數(shù)叫做finalize()【跟class一樣是從system。object類提供的?!?br />                而我們?cè)倏聪旅娴睦樱篶lass Myclass
                       {
                       ~ Myclass()
                            {
                                }
                              }
       也就是類的析構(gòu)函數(shù)由帶有~前綴的類名(與構(gòu)造函數(shù)的相同)來聲明。
 

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI