a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C# > 正文

C#所獨(dú)有的特點(diǎn)

2023-05-20 20:23:36
字體:
供稿:網(wǎng)友

C#最引人入勝的地方是它和Java的不同,而不是相似的地方.本文講述了C#實(shí)現(xiàn)的和Java不同的地方或者 Java根本沒有的特點(diǎn).

中間代碼

微軟在用戶選擇何時(shí)MSIL應(yīng)該編譯成機(jī)器碼的時(shí)候是留了 很大的余地.微軟公司很小心的聲稱MSIL不是解釋性的,而是被編譯成了機(jī)器碼.它也明白許多--如果不是大多數(shù)的話--程序員認(rèn)為Java程序要不可避免的比C編寫的任何東西都要慢.而這種實(shí)現(xiàn)方式?jīng)Q定了基于MSIL的程序(指的是用C#,Visual Basic,"Managed C++"--C++的一個(gè)符合CLS的版本--等語言編寫的程序)將在性能上超過"解釋性的"Java代碼.當(dāng)然,這一點(diǎn)還需要得到事實(shí)證明,因?yàn)镃#和 其他生成MSIL的編譯器還沒有發(fā)布.但是Java JIT編譯器的普遍存在使得Java和C#在性能上相對(duì)相同.象"C#是編譯語言而Java是解釋性的,"之類的聲明只是商業(yè)技巧.Java的中間代碼和 MSIL都是中間的匯編形式的語言,它們?cè)谶\(yùn)行時(shí)或其它的時(shí)候被編譯成機(jī)器代碼.

命名空間中的申明

當(dāng)你創(chuàng)建一個(gè)程序的時(shí)候,你在一個(gè)命名空間里創(chuàng)建了一個(gè)或多個(gè)類.同在這個(gè)命名空間里(在類的外面)你還有可能聲明接口,枚舉類型和結(jié)構(gòu)體.必須使用 using關(guān)鍵字來引用其他命名空間的內(nèi)容.

基本的數(shù)據(jù)類型

C#擁有比C,C++或者 Java更廣泛的數(shù)據(jù)類型.這些類型是bool, byte, ubyte, short, ushort, int, uint, long, ulong, float, double,和decimal.象Java一樣,所有這些類型都有一個(gè)固定的大小.又象C和C++一樣,每個(gè)數(shù)據(jù)類型都有有符號(hào)和無符號(hào)兩種類型.與 Java相同的是,一個(gè)字符變量包含的是一個(gè)16位的Unicode字符.C#新的數(shù)據(jù)類型是decimal數(shù)據(jù)類型,對(duì)于貨幣數(shù)據(jù),它能存放28位10 進(jìn)制數(shù)字.

兩個(gè)基本類

一個(gè)名叫object的類是所有其他類的基類.而一個(gè)名叫string 的類也象object一樣是這個(gè)語言的一部分.作為語言的一部分存在意味著編譯器有可能使用它--無論何時(shí)你在程序中寫入一句帶引號(hào)的字符串,編譯器會(huì)創(chuàng) 建一個(gè)string對(duì)象來保存它.

參數(shù)傳遞

方法可以被聲明接受可變數(shù)目的參數(shù).缺省的參數(shù)傳 遞方法是對(duì)基本數(shù)據(jù)類型進(jìn)行值傳遞.ref關(guān)鍵字可以用來強(qiáng)迫一個(gè)變量通過引用傳遞,這使得一個(gè)變量可以接受一個(gè)返回值.out關(guān)鍵字也能聲明引用傳遞過 程,與ref不同的地方是,它指明這個(gè)參數(shù)并不需要初始值.

與COM的集成

C#對(duì) Windows程序最大的賣點(diǎn)可能就是它與COM的無縫集成了,COM就是微軟的Win32組件技術(shù).實(shí)際上,最終有可能在任何.NET語言里編寫COM 客戶和服務(wù)器端.C#編寫的類可以子類化一個(gè)以存在的COM組件;生成的類也能被作為一個(gè)COM組件使用,然后又能使用,比方說,JScript語言子類 化它從而得到第三個(gè)COM組件.這種現(xiàn)象的結(jié)果是導(dǎo)致了一個(gè)運(yùn)行環(huán)境的產(chǎn)生,在這個(gè)環(huán)境里的組件是網(wǎng)絡(luò)服務(wù),可用用任何.NET語言子類化.

索引下標(biāo)

一個(gè)索引與屬性除了不使用屬性名來引用類成員而是用一個(gè)方括號(hào)中的數(shù)字來匿名引用(就象用數(shù)組下 標(biāo)一樣)以外是相似的.

public class ListBox: Control {
    private string[] items;
    public string this[int index]
    {
      get
      {
        return items[index];
      }
      set
      {
        items[index] = value;
        Repaint();
      }
    }
  }

 可以用一個(gè)循環(huán)器來匿名引用字符串內(nèi)部數(shù)組成員,就象下面這樣:

 ListBox listBox = ...;
  listBox[0] = "hello";
  Console.WriteLine(listBox[0]);

代理和反饋

一個(gè)代理對(duì)象包括了訪問一個(gè)特定對(duì)象的特定方法所需的信息.只要把它當(dāng)成一個(gè)聰明的方法指針就行 了.代理對(duì)象可以被移動(dòng)到另一個(gè)地方,然后可以通過訪問它來對(duì)已存在的方法進(jìn)行類型安全的調(diào)用.一個(gè)反饋方法是代理的特例.event關(guān)鍵字用在將在事件 發(fā)生的時(shí)候被當(dāng)成代理調(diào)用的方法聲明.

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国内久久精品视频 | 日韩一区二区福利 | 免费高清一级毛片 | 91久久久精品视频 | 日韩视频免费 | 中文字幕免费视频观看 | 亚洲国产精品va在线看黑人 | 超碰官网 | 国产精品久久久久久久久免费高清 | 欧美日韩精品免费观看视频 | 国产精品三级久久久久久电影 | 国产在线一区二区 | 日韩极品在线 | 毛片一区二区 | 91porn在线 | 成人激情视频在线免费观看 | 日韩精品小视频 | 成人福利网 | 在线区 | 欧美9999| 精品国产一区二区三区四区 | 欧美在线播放一区 | 99爱在线观看 | 在线亚洲电影 | 亚洲网在线| 欧美xo影院 | 中文字幕视频免费观看 | 久久免费看 | 国产91在线播放精品91 | 国产一区二区不卡在线 | 国产999精品久久久久久麻豆 | 免费一区二区 | 免费av手机在线观看 | 国产精品国产三级国产专业不 | 欧美在线播放一区 | 国产视频一二区 | 日韩精品 | 日本一区二区精品 | 国产一级毛片国语一级 | 日本欧美大片 | 一区二区三区四区精品 |