国产精品成人免费视频_91丝袜美腿美女视频网站_国产一区二区三区在线看_亚洲欧美另类中文字幕_在线电影av不卡网址_国产视频丨精品|在线观看_日韩一区二区三区国产_国产欧美va欧美va香蕉在线_热re91久久精品国99热蜜臀_亚洲第一精品电影_久久九九亚洲综合_国产成人综合精品_97视频在线观看网址_精品视频久久久久久_日韩av片免费在线观看_久久精品国产99国产精品澳门

聚集網(jujiwang.com) - 收錄免費分類目錄信息軟文發布網址提交
免費加入

VB.NET ListBox控件的事件、屬性和方法:深入解析 (vbnet程序設計教程)

文章編號:11717時間:2024-10-01人氣:


ListBox控件是VB.NET中一種非常有用的控件,它允許用戶在一個列表中選擇多個項目。

事件

ListBox控件引發以下事件:

vbnet程序設計教程
  • SelectedIndexChanged:當用戶更改所選項目時引發。
  • DoubleClick:當用戶雙擊一個項目時引發。
  • DrawItem:當繪制列表框中的一個項目時引發。
  • MeasureItem:當測量列表框中的一個項目時引發。
  • SelectedValueChanged:當用戶更改所選值的代碼時引發。

屬性

ListBox控件的常用屬性包括:

  • DataSource:指定要綁定到列表框的數據源。
  • DataMember:指定要綁定的數據源中的數據成員。
  • DisplayMember:指定要顯示在列表框中的數據成員。
  • ValueMember:指定要返回給代碼的實際值。
  • FormattingEnabled:指定是否對列表框中的項目應用格式。
  • IntegralHeight:指定是否強制列表框中的所有項目具有相同的固定高度。
  • MultiColumn:指定是否允許列表框顯示多列項目。
  • SelectionMode:指定用戶一次可以選擇的項目數。
  • SelectedValue:獲取或設置列表框中所選項目的實際值。
  • SelectedItem:獲取或設置列表框中所選的項目。

方法

ListBox控件常用的方法包括:

  • Clear:清除列表框中的所有項目。
  • FindStringExact:在列表框中查找并選擇一個與指定字符串完全匹配的項目。
  • GetScrollbarBounds:獲取列表框滾動條的邊界。
  • GetSelected:獲取一個指定是否已選擇給定項目的布爾值。
  • Items:獲取或設置列表框中項目的集合。
  • ScrollToCaret:將列表框滾動到插入符的位置。
  • SetSelected:選中或取消選中給定項目。

深入解析

ListBox控件是一個非常強大的控件,可以用來創建各種用戶界面元素。它可以用來顯示簡單的文本列表、綁定到數據源或顯示自定義格式的項目。

數據綁定

ListBox控件可以通過 多列

ListBox控件可以通過MultiColumn屬性顯示多列項目。這使您可以創建更復雜的列表視圖。

例如,以下代碼創建了一個顯示三列項目的列表框:

```vbnetListBox1.MultiColumn = TrueListBox1.Columns.Add("Column1")ListBox1.Columns.Add("Column2")ListBox1.Columns.Add("Column3")ListBox1.Items.Add(New String() {"Item1", "Item2", "Item3"})ListBox1.Items.Add(New String() {"Item4", "Item5", "Item6"})```

結論

ListBox控件是一個功能強大且用途廣泛的控件,可以用來創建各種用戶界面元素。它易于使用并支持多種屬性、事件和方法,使您可以自定義其行為和外觀。


C#(讀做 C sharp,中文譯音“夏普”)是微軟公司發布的一種面向對象的、運行于 Framework之上的高級程序設計語言,并定于在微軟職業開發者論壇(PDC)上登臺亮相.C#是微軟公司研究員ANDers Hejlsberg的最新成果.C#看起來與Java有著驚人的相似;它包括了諸如單一繼承,界面,與Java幾乎同樣的語法,和編譯成中間代碼再運行的過程.但是C#與Java有著明顯的不同,它借鑒了Delphi的一個特點,與COM(組件對象模型)是直接集成的,而且它是微軟公司 windows網絡框架的主角. 在本文中,我將考察創建一種新計算機語言的一般動機,并將特別指明是什么原因導致了C#的出現.然后我將介紹C#和它與Java,c,c++的相似之處.其次我將討論一些存在于Java和C#之間的高層次的,和基礎的差別.我將以衡量在用多種語言開發大型應用程序的時候所需的知識(或者對這種知識的缺乏程度)來結束本文,而這正是和C#的一個主要戰略.目前,C#和還只能以C#語言規則,以及Windows 2000的一個d預覽版本,還有MSDN上迅速增多的文檔集子的形式獲得(還沒有最終定型). 微軟c#語言定義主要是從C和C++繼承而來的,而且語言中的許多元素也反映了這一點.C#在設計者從C++繼承的可選選項方面比Java要廣泛一些(比如說structs),它還增加了自己新的特點(比方說源代碼版本定義).但它還太不成熟,不可能擠垮Java.C#還需要進化成一種開發者能夠接受和采用的語言.而微軟當前為它的這種新語言大造聲勢也是值得注意的.目前大家的反應是:這是對Java的反擊. C#更象Java一些,雖然微軟在這個問題上保持沉默.這也是意料中的事情,我覺得,因為Java近來很成功而使用Java的公司都報告說它們在生產效率上比C++獲得了提高. Java所帶來的巨大影響和大家對它的廣泛接受已經由工作于這種語言和平臺之上的程序員數量明顯的說明了(估計世界范圍內共有兩百五十萬程序員使用Java).由這種語言寫成的應用程序的數量是令人驚訝的并已經滲透了每一個級別的計算,包括無線計算和移動電話(比如日本發明的Java電話).C#能夠在用戶領域獲得這樣的禮遇嗎?我們必須等待并觀望,就象已經由SSI公司的CEO和主席Kalpathi S. Suresh指出來的那樣,我發現所有這些都是漸進的.如果C#不存在,我們總能回到Java或C和C++.這些都不完全是新技術;它們在更大的意義上來說只是大公司制造的市場噱頭.我們必須給他們時間安頓下來看看這些是不是真的對IT工業有什么影響. C#從Java繼承而來的特點 類:在C#中類的申明與Java很相似.這是合理的因為經驗告訴我們Java模型工作得很好的關鍵字import已經被替換成using,它起到了同樣的作用.一個類開始執行的起點是靜態方法Main().下面的Hello World程序展示了基本的形式: using System; class Hello { static void Main() { (Hello, world); } } 在這個例子中,System這個名字指向一個包括了基本C#實用類集合的命名空間(namespace).這個命名空間包括了Console類,它在這個例子中被用來輸出一個字符串.類可以是抽象的和不可繼承的:一個被申明成abstract的類不能被實例化;它只能被用做一個基類.C#關鍵字sealed就象Java關鍵字final,它申明一個類不是抽象的,但是它也不能被用做另一個類的基類.界面:就象在Java中一樣,一個界面是一組方法集合的抽象定義.當一個類或結構體實現一個界面的時候,它必須實現這個界面中定義的所有方法.一個單一的類可以實現幾個界面.也許以后會出現一些微妙的差別,但是這個特點看起來與Java相比沒有變化.布爾運算:條件表達式的結果是布爾數據類型,布爾數據類型是這種語言中獨立的一種數據類型.從布爾類型到其他類型沒有直接的轉換過程.布爾常量true和false是C#中的關鍵字.錯誤處理:如Java中那樣,通過拋出和捕捉異常對象來管理錯誤處理過程.內存管理:由底層框架進行自動內存垃圾回收. C#從C和C++繼承的特點 編譯:程序直接編譯成標準的二進制可執行形式.但C#的源程序并不是被編譯成二進制可執行形式,而是一中中間語言,類似于JAVA字節碼。 如果前面的Hello World程序被保存成一個文本文件并被命名為,它將被編譯成命的可執行程序. 結構體:一個C#的結構體與C++的結構體是相似的,因為它能夠包含數據聲明和方法.但是,不象C++,C#結構體與類是不同的而且不支持繼承.但是,與Java相同的是,一個結構體可以實現界面. 預編譯:C#中存在預編譯指令支持條件編譯,警告,錯誤報告和編譯行控制.可用的預編譯指令有: #define #undef #if #elif #else #endif #warning #error #line [] 沒有了#include 偽指令.你無法再用#define 語句對符號賦值,所以就不存在源代碼替換的概念--這些符號只能用在#if和#elif偽指令里.在#line偽指令里的數字(和可選的名字)能夠修改行號還有#warning和#error輸出結果的文件名. 操作符重載:一些操作符能夠被重載,而另一些則不能.特別的是,沒有一個賦值運算符能夠被重載.能夠被被重載的單目操作符是: + - ! ~ ++ -- true false 能夠被重載的二元運算符是: + - * / % & | ^ << >> == != > < >= <= C#獨有的特點 C#最引人入勝的地方是它和Java的不同,而不是相似的地方.這一節(和這個系列第二部分的大部分地方)講述了C#實現的和Java不同的地方或者Java根本沒有的特點. 中間代碼:微軟在用戶選擇何時MSIL應該編譯成機器碼的時候是留了很大的余地.微軟公司很小心的聲稱MSIL不是解釋性的,而是被編譯成了機器碼.它也明白許多--如果不是大多數的話--程序員認為Java程序要不可避免的比C編寫的任何東西都要慢.而這種實現方式決定了基于MSIL的程序(指的是用C#,Visual Basic,Managed C++--C++的一個符合CLS的版本--等語言編寫的程序)將在性能上超過解釋性的Java代碼.當然,這一點還需要得到事實證明,因為C#和其他生成MSIL的編譯器還沒有發布.但是Java JIT編譯器的普遍存在使得Java和C#在性能上相對相同.象C#是編譯語言而Java是解釋性的,之類的聲明只是商業技巧的中間代碼和MSIL都是中間的匯編形式的語言,它們在運行時或其它的時候被編譯成機器代碼. 命名空間中的申明:當你創建一個程序的時候,你在一個命名空間里創建了一個或多個類.同在這個命名空間里(在類的外面)你還有可能聲明界面,枚舉類型和結構體.必須使用using關鍵字來引用其他命名空間的內容. 基本的數據類型:C#擁有比C,C++或者Java更廣泛的數據類型.這些類型是bool, byte, ubyte, short, ushort, int, uint, long, ulong, float, double,和decimal.象Java一樣,所有這些類型都有一個固定的大小.又象C和C++一樣,每個數據類型都有有符號和無符號兩種類型.與Java相同的是,一個字符變量包含的是一個16位的Unicode字符.C#新的數據類型是decimal數據類型,對于貨幣數據,它能存放28位10進制數字. 兩個基本類:一個名叫object的類是所有其他類的基類.而一個名叫string的類也象object一樣是這個語言的一部分.作為語言的一部分存在意味著編譯器有可能使用它--無論何時你在程序中寫入一句帶引號的字符串,編譯器會創建一個string對象來保存它. 參數傳遞:方法可以被聲明接受可變數目的參數.缺省的參數傳遞方法是對基本數據類型進行值傳遞關鍵字可以用來強迫一個變量通過引用傳遞,這使得一個變量可以接受一個返回值關鍵字也能聲明引用傳遞過程,與ref不同的地方是,它指明這個參數并不需要初始值. 與COM的集成:C#對Windows程序最大的賣點可能就是它與COM的無縫集成了,COM就是微軟的Win32組件技術.實際上,最終有可能在任何語言里編寫COM客戶和服務器端.C#編寫的類可以子類化一個以存在的COM組件;生成的類也能被作為一個COM組件使用,然后又能使用,比方說,JScript語言子類化它從而得到第三個COM組件.這種現象的結果是導致了一個運行環境的產生,在這個環境里的組件是網絡服務,可用用任何語言子類化. 索引下標:一個索引與屬性除了不使用屬性名來引用類成員而是用一個方括號中的數字來匿名引用(就象用數組下標一樣)以外是相似的. public class ListBox: Control { private string[] items; public string this[int index] { get { return items[index]; } set { items[index] = value; Repaint(); } } } 可以用一個循環器來匿名引用字符串內部數組成員,就象下面這樣: ListBox listBox = ...; listBox[0] = hello; (listBox[0]); 代理和反饋:一個代理對象包括了訪問一個特定對象的特定方法所需的信息.只要把它當成一個聰明的方法指針就行了.代理對象可以被移動到另一個地方,然后可以通過訪問它來對已存在的方法進行類型安全的調用.一個反饋方法是代理的特例關鍵字用在將在事件發生的時候被當成代理調用的方法聲明.補充:C#簡史——摘自《程序員》雜志2005-12月刊C# 簡史編者按:時間過得真快,居然現在就可以寫C#的簡史了。 但是想想也不奇怪,C#可謂起點高、發展快的新一代語言,它的這五年走過了很多前輩十幾年的路。 公允地說,C#是目前兼顧系統開發和應用開發的最佳實用語言,并且很有可能成為編程語言歷史上的第一個“全能”型語言。 看過這篇簡史,我們都應該明白,不要再把C#看成年輕后生了——只要是“馬拉多納”,就早晚當“球王”。 C# 1.0,純粹的面向對象當時間回溯到1998年底,微軟正在忙于新一代COM的設計工作。 此前,COM一直是組件化開發中非常成功的一種技術;但由于它僅提供了二進制層面上的統一,因此無法將類型信息和用于支持基礎平臺和開發工具的信息放到組件中。 這時,Java正在逐步走向成熟。 于是,微軟學習Java的做法,將虛擬機的概念引入到了COM領域;同時,微軟提出了“元數據”的概念,用于描述組件的類型信息和工具支持信息,并決定將其放入到組件當中。 這種“COM虛擬機”的名字在經歷了若干爭論后,最終被定為CLR(Common Language Runtime,公共語言運行時)。 與此同時,微軟提出了在該運行時上運作的語言應該遵循的一些規則,以及該虛擬機的類型系統和指令集——所有這些規范形成了最終的C L I(Common Language Infrastructure,公共語言基礎設施),并提交給了ECMA委員會。 同時,微軟開發了CLI的一個實現,這就是大名鼎鼎的了。 1998年12月,微軟啟動了一個全新的語言項目——COOL,這是一款專門為CLR設計的純面向對象的語言,也正是本文的主角——C#的前身。 歷時半年有余,1999年7月份,微軟完成了COOL語言的一個內部版本。 直到2000年2月份,微軟才正式將COOL語言更名為C#。 據說起這個名字是因為C#開發小組的人很討厭搜索引擎,因此把大部分搜索引擎無法識別的“#” 字符作為該語言名字的一部分;還有一種說法是在音樂當中“#”是升調記號,表達了微軟希望它在C的基礎上更上一層樓的美好愿望——當然這些都只是傳說,無從考證。 又是歷經了一系列的修改,微軟終于在2000年7月發布了C#語言的第一個預覽版。 因此人們一般認為C#是2000年發布的,并以此來計算它的“年齡”。 在此后的一年多時間里,微軟一直在修補各個測試版本中的BUG。 直到2002年2月,微軟終于推出了遲遲未上市的Visual Studio 7.0,并將其定名為“VisualStudio 2002”。 隨著這套開發環境的出爐,開發者們終于看到了C#語言的第一個正式版本——C# 1.0。 此后,微軟馬不停蹄,Visual Studio也恢復了往日的開發進度。 在2003年5月,微軟如期推出了Visual Studio 2003,同時也發布了C#的改進版本——C# 1.1。 這一時期的C#(以下稱為C# 1.x)提出了純粹的面向對象概念,并在語言特性中展現得淋漓盡致。 C++并非純面向對象的,為了和C兼容以及提供更高的執行效率,它保留了很多模塊化的東西。 Java盡管號稱是面向對象的,但實際上,對于對象所應該具備的三種構成結構——屬性、方法和事件,Java僅提供了方法,其它兩種結構都要通過方法來模擬。 在C# 1.x中,所有面向對象的概念都在語言中得到了非常好的體現。 同時,C#還通過類類型、值類型和接口類型的概念形成了統一的類型系統。 C#使用了大家所熟知的語法實現了方法,以至于很多人認為C#和Java、C++等面向對象語言“非常相像”,這使得從使用其他面向對象語言轉到使用C#的過程非常簡單。 此外,C#還通過無參數列表的方法聲名語法,結合get/set訪問器實現了優雅的屬性語法。 其中的get訪問器相當于獲取屬性值的方法,可以通過一些運算返回最終的結果,而不是簡單地返回一個變量的值;而set訪問器相當于設置屬性值的方法,在其中可以進行一系列檢測,最后將屬性值賦給相應的變量。 同時,通過同時提供get和set訪問器、只提供get訪問器和只提供set訪問器,還可以很方便地實現可讀寫、只讀和只寫的屬性。 C#的這種屬性語法,使得一個屬性在提供該屬性的類的內部看來,非常像一組方法;而對于外部調用類看來,訪問一個對象的屬性和訪問它的公共域沒有任何區別。 通過委托(稍后介紹),結合關鍵字event,C#提供了優雅的事件概念。 使用+=運算符,開發者可以非常方便地將一個事件處理器關聯到一個事件上,這個過程稱之為“訂閱”一個事件。 由于委托內部封裝了一個調用鏈表,因此可以方便地為一個事件添加多個事件處理器,這些處理器會自動地依次調用。 多年的開發語言進化證明,函數指針是非常重要也是非常危險的語言特征之一。 同時,基于函數指針的回調機制也Windows 核心概念之一。 然而,由于函數指針很難驗證參數的類型準確性,因此C#(確切地說是CLI)提出了“委托”的概念,這是一種類型安全的函數指針鏈表。 這意味著,C#不僅可以提供回調機制,同時調用回調的一方還無需在其內部維護函數指針列表,所要做的僅僅是聲名一個具有恰當委托類型的公共成員即可;而提供回調的一方也只需通過構造一個帶有指定方法的相應委托實例,并通過“+=”運算符添加到回調列表即可。 盡管C# 1.x提供了如此多的新鮮概念,但實際上,這些概念都是由CLI提出的。 因此當將一個C#源程序編譯為可執行文件時,編譯器做的工作相對而言并不多。 需要編譯器代勞的是要將一個簡單的委托定義語句翻譯為一個繼承自類型定義。 C# 2.0,泛型編程新概念微軟本打算繼續保證開發進度,并在2004年推出Visual Studio 2004,但由于其間軟件工程學尤其是軟件管理學的大規模進步,微軟所提供的這種僅具備開發和調試功能的IDE已經無法滿足團隊開發的需求。 因此微軟決定在項目設計和管理工具方面進行了進一步研發,并將其集成到Visual Studio中,以贏回原有的市場。 因此,微軟將Visual 2004“改名”為Visual Studio 2005,并決定推遲一年發布。 不過,微軟還是堅持在2004年的6月份發布了Visual Studio2005的第一個Beta 版,同時向開發者展示了C#語言的2.0版本。 2005年4月,微軟發布了Visual Studio 2005 Beta2,這已經是具備了幾乎全部功能的VisualStudio,包括的產品有SQL Server2005、Team Foundation Server和TeamSuite。 這時的C#編譯器已經能夠處理C# 2.0中所有的新特性。 C# 2.0為開發者帶來的最主要的特性就是泛型編程能力。 和面向對象思想一樣,泛型思想也是一種已經成熟的編程思想,但依然是沒有哪一種主流開發語言能夠支持完備的泛型概念。 這主要是因為泛型的概念在一定程度上對面向對象概念進行沖擊,同時,由于在編譯期間對類型參數的完全檢測很難做到,很多問題會被遺留到運行時。 C# 2.0別出心裁,對泛型類型參數提出了“約束”的新概念,并以優雅的語法體現在語言之中。 有了約束,結合編譯器強大的類型推斷能力,可以在編譯時發現幾乎所有“危險”的泛型應用。 C# 2.0的另一個突出的特性就是匿名方法,用來取代一些短小的并且僅出現一次的委托,使得語言結構更加緊湊。 匿名方法除了可以使得事件處理器的編寫更加精簡以外,還將開發者帶入了程序設計的一個新的領域——函數式編程,曾經有高人就用匿名方法結合泛型編程實現了函數式編程中的重要結構—— Lambda 表達式。 盡管這種實現顯得很繁瑣而且不易理解,但畢竟是實現了。 最終,函數式編程還是被引入到了C#語言中,這將在下一節中為大家講述。 此外,C# 2.0還進一步增強了語言的表達能力。 在C# 2.0中,屬性語法中的get和set訪問器可以擁有不同的權限,這就使得定義一個在庫的內部可讀寫,而在庫的外部只讀的屬性成為可能。 同時,C# 2.0還提供了迭代器的概念,這使得一個類無需實現IEnumerator 和IEnumerable接口即可實現一個可以進行遍歷的類型,并且無需在類型中維護迭代狀態。 此時的已經得到了很廣泛的認可,并且因為元數據為組件帶來了強大的自我描述能力,許多程序庫廠商被吸引到平臺上來。 隨著程序庫數量的增長,逐漸暴露了命名的問題。 在面向對象技術廣泛發展后,人們就意識到名字的管理問題,因此幾乎所有的面向對象語言都提出了“命名空間”的概念;而在C# 1.x時代,這個問題再一次出現。 如果一個庫廠商XX 希望以來命名他們自己的系統基礎庫,那么當開發者使用using System語句時就會產生歧義。 為此。 C# 2.0中提供了global關鍵字,這為庫中所有的命名空間提供了一個“根”,通過指定global::System和就可以區別兩個庫了。 這一時期的C#編譯器變得非常復雜,泛型的引入使得編譯器不得不具備超強的類型推斷能力。 同時,迭代器的思想并非是在CLI層面上實現的,而是由編譯器自動生成了實現I E n u m e r a t o r 和IEnumerable接口類型。 C# 3.0,魔鬼在經歷了一系列的改進和完善后,微軟決定于2005年11月發布Visual Studio2005,該開發環境將正式支持C#2.0。 由于此前推出了數個預覽版和測試版,大家的期待之情似乎已經不是那么強烈了。 而2005年9 月份的PDC大會則為開發者們帶來了另外的驚喜——C#3.0(研發代號“Orcas”——魔鬼)的技術預覽版。 說到C# 3.0,就不得不提一下微軟的LINQ 項目,LINQ(語言集成查詢,Language Integrated Query)提出了一種通過面向對象語法來實現對非面向對象數據源的查詢技術,可查詢的數據源從關系型數據庫延伸到一般意義上的集合(如數組和列表)以及XML。 而C# 3.0則是率先實現了LINQ的語言。 在C# 3.0中,我們可以用類似于SQL語句的語法從一個數據源中輕松地得到滿足一定條件的對象集合。 例如要查找一個字符串數組names中所有長度大于5的字符串,就可以寫:var longname = from n in names > 5 select n;這樣我們就得到一個新的字符數組longname,其中包含了我們所需要的結果。 這種語句稱作查詢語句,與SQL語句唯一的區別是C#中的查詢語句往往把select子句放到最后(這反而倒有些類似于中文的閱讀順序了)。 初次看到這樣一個語句,我們可能會有很大疑問:這還是C#語言嗎?這的確是合乎語法規則的C#代碼,而且編譯器可以識別這種語法。 然而實際上,C#編譯器并不會對這種語法進行實際的的編譯,而是將其翻譯為正常的方法調用:var longname = (n => > 5)(n);然后再進行進一步的編譯。 在上面的例子中已經說明,names是一個存放有字符串的數組,而數組類型并沒有Where的方法。 的確,Where并非names的成員方法,微軟也沒有對數組類型進行任何改動。 這是C# 3.0中另外一個重要的新特性:擴展方法。 擴展方法是定義在其他靜態類中的靜態方法,其第一個參數的類型就是希望擴展的類型,并且這個參數被冠以this修飾符。 擴展方法是靜態的,但可以像調用被擴展類型的實例方法那樣進行調用,看起來好像是被擴展類型自己的方法一樣。 這就為語言帶來了很大的靈活性,我們可以將一組近似的功能如上面的Where 和Select等(這在LINQ中被稱作“標準查詢表達式”)定義在一個外部類中,這樣既無須修改現有類型,又可以將新功能組織在一起。 當然,為了做到面向對象的封裝性,擴展方法只能在被擴展類型的公共成員上進行操作,如果需要從內部對類型進行改進,就必須改變現有類型的代碼。 在Where方法的參數列表里,我們又發現了一種奇怪的語法:n => > 5。 這就是我們上文提到過的Lambda 表達式。 微軟的官方規范中稱,Lambda 表達式是匿名方法的一種自然進化。 因此Lambda 表達式其實也是一種特殊的委托,由編譯器負責生成一個匿名的委托類型,它接受一個字符串類型的參數n;返回值為布爾類型,表示n的長度是否大于5;其中的參數類型和返回值類型都是由編譯器推斷而來的。 說到類型推斷,還要解釋的一點就是上面的語句中出現的新關鍵字var。 從出現的位置來看,var應該是一個類型。 然而這又不是一個C#內建類型,也不是CLI提出的新類型;它只是一個“占位符”,它的確表示一個類型,但具體是什么類型需要編譯器在編譯期間進行推斷。 Lamda表達式的真正意義不僅僅在于簡化了委托的編寫方式,更重要的是它把代碼表達式體現為了數據。 換句話說,Lambda表達式不僅可以被編譯為一段可以執行的代碼(類似于匿名方法),也可以將其翻譯為一個數據結構——表達式樹。 而如何處理Lambda 表達式,是由編譯器根據Lambda表達式的使用方式來自動確定的。 當把一個Lambda表達式賦給一個具有委托類型的域、屬性或變量時,編譯器像編譯匿名方法一樣將表達式體翻譯成一段可執行代碼;而當把一個L a m b d a 表達式賦給一個具有Expression類型的域、屬性或變量時,編譯器就會將Lambda表達式解析為一個表達式樹。 對于翻譯為代碼的Lambda,可以向調用委托那樣進行調用,而對于翻譯為表達式樹的Lambda表達式,就不可以了,會得到一個編譯錯誤。 但表達式樹存在于一個由編譯器生成的數據結構中,因此可以在運行時對其進行分析甚至修改。 除了上面提到的一些重大改進之外,C# 3.0也對細微的語法進行了一些改進,使C#語言變得更加優雅和全面。 值得說明的是,C# 3.0經過編譯后生成的IL代碼,完全是基于 2.0的,C#語言已經遠遠跑在了他所棲生的平臺前面。 這一時期的C#語言離CLI已經越來越遠了,編譯器的工作也愈加繁重起來。 首先很多語言結構(如查詢表達式和Lambda 表達式)都不是CLI中提供的特性,因此需要編譯器進行大量的轉譯工作;其次是這些語言結構帶來的大量類型推斷任務,也都是靠編譯器來完成的。 C#走到了3.0以后,已經完全不再是當年那個“簡單”的語言了。 它的開發者稱其為“魔鬼”,而琳瑯滿目的新特性也的確讓開發者們眼花繚亂,甚至感到恐懼。 語言集成查詢的引入,使得前一段時期內為開發者們廣泛討論的ORM概念得到了更加深入地體現,尤其是它所支持的數據源之廣泛,讓ORM理念變得已經不再必要了;而一些“中的ORM實現”,似乎也成了完全不必要的擴展項目了。 Lambda 表達式的引入,使得C#將可以輕松地完成特定領域(Domain-Specific)的開發。 一個成功的開發人員在面對新鮮事物和新的困難時,興奮是遠大于恐懼的。 讓魔鬼來得更猛烈些吧!



相關標簽: 屬性和方法、 VB.NET、 深入解析、 vbnet程序設計教程、 ListBox控件的事件、

上一篇:在VBNET應用程序中利用ListBox控件實現數據

下一篇:掌握VBNETListBox控件的自定義和高級選項掌

內容聲明:

1、本站收錄的內容來源于大數據收集,版權歸原網站所有!
2、本站收錄的內容若侵害到您的利益,請聯系我們進行刪除處理!
3、本站不接受違法信息,如您發現違法內容,請聯系我們進行舉報處理!
4、本文地址:http://m.sycxjdsbhs.com/article/060ee3518fce3b1698f2.html,復制請保留版權鏈接!


溫馨小提示:在您的網站做上本站友情鏈接,訪問一次即可自動收錄并自動排在本站第一位!
隨機文章
解決 0x000018 藍屏錯誤的終極解決方案:綜合故障排除和預防措施 (解決0x0000011b)

解決 0x000018 藍屏錯誤的終極解決方案:綜合故障排除和預防措施 (解決0x0000011b)

解決0x000018藍修復損壞的系統映像,在命令提示符中輸入DISM,Online,Cleanup,Image,RestoreHealth以運行DISM,恢復系統,如果其他故障排除步驟不起作用,則可以嘗試將系統恢復到以前的工作狀態,在開始菜單中搜索系統還原以啟動此過程,預防措施保持系統更新,定期更新Windows和所有軟件可以修復錯誤...。

最新資訊 2024-10-01 01:08:49

優化導航條性能:保持加載速度和響應速度 (導航欄優化)

優化導航條性能:保持加載速度和響應速度 (導航欄優化)

簡介導航條是網站的重要組成部分,因為它允許用戶輕松瀏覽網站,它也可能是網站中最慢的部分,原因有很多,包括加載大量的圖像、使用復雜的樣式和動畫,為了解決這個問題,有必要優化導航條的性能,這可以通過使用以下一些技術來實現,減少圖像大小使用CSS精靈圖減少動畫和效果緩存導航條使用CDN減少圖像大小圖像通常是導航條中最大的性能瓶頸,為了減少圖...。

最新資訊 2024-09-29 22:59:24

超越網格:利用 grid 設置創造突破常規的布局 (超越網絡科技)

超越網格:利用 grid 設置創造突破常規的布局 (超越網絡科技)

CSSGrid是一種強大的布局系統,它允許開發人員創建靈活且響應式的布局,通過利用其強大的功能,您可以突破傳統網格布局的限制,創建令人驚嘆的視覺效果,突破常規布局示例項目1項目2項目3項目4項目5項目6項目7項目8突破常規布局的CSS規則要創建突破常規布局,可以使用以下自定義CSS規則,grid,column,spann,跨越指定的...。

本站公告 2024-09-29 02:32:18

了解磁盤配額在企業 IT 環境中的重要性,確保數據安全和可用性 (什么是磁盤配額,使用磁盤配額應注意什么)

了解磁盤配額在企業 IT 環境中的重要性,確保數據安全和可用性 (什么是磁盤配額,使用磁盤配額應注意什么)

簡介磁盤配額是一種重要的IT管理工具,用于限制用戶對存儲空間的使用,在企業IT環境中,實施磁盤配額至關重要,因為它有助于確保數據安全和可用性,本文將探討磁盤配額的優勢、注意事項以及最佳實踐,磁盤配額的優勢實施磁盤配額可以帶來以下優勢,提高存儲效率,磁盤配額通過限制用戶存儲空間的使用,可以防止單個用戶占用過多的存儲,從而提高整體存儲效率...。

本站公告 2024-09-25 12:12:28

Java 編程基礎:視頻教程系列 (java編程自學教程)

Java 編程基礎:視頻教程系列 (java編程自學教程)

本教程系列將帶你從頭開始學習Java編程語言,無論你是一個沒有編程經驗的完全新手,還是希望鞏固基礎的初學者,這個系列都非常適合你,課程大綱第1課,Java基礎什么是Java,為什么學習Java,Java的特點安裝和配置Java開發環境第2課,數據類型和變量原語數據類型引用數據類型變量聲明和初始化轉換和強制類型轉換第3課,運算符和表達式...。

技術教程 2024-09-25 05:05:56

在 MVC 模型中使用 DropdownListFor:創建用戶友好的界面 (mvc模型的基本工作原理)

在 MVC 模型中使用 DropdownListFor:創建用戶友好的界面 (mvc模型的基本工作原理)

MVC模型的基本工作原理Model,View,Controller,MVC,是一種設計模式,它將應用程序的邏輯和表現層分離成三個不同的組件,模型,表示應用程序的數據和邏輯,視圖,負責顯示數據,控制器,處理用戶交互并與模型和視圖通信,在MVC模型中,DropdownListForHTML助手用于創建用戶友好的下拉列表控件,它允許用戶從預...。

最新資訊 2024-09-16 08:45:07

使用 CSS 提升滾動條可用性:為用戶提供便利 (css調用)

使用 CSS 提升滾動條可用性:為用戶提供便利 (css調用)

在設計網站或應用程序時,我們通常會忽視滾動條,但是,滾動條對于為用戶提供便利和提升用戶體驗至關重要,通過使用CSS,我們可以輕松自定義滾動條的外觀和行為,使其更易于使用和美觀,滾動條的可用性問題未經優化的滾動條可能會導致以下可用性問題,難以找到或看到太細或太短,難以抓取與網站或應用程序的整體設計不一致使用CSS提升滾動條可用性我們可以...。

最新資訊 2024-09-15 09:11:23

搜索引擎優化的利器:蜘蛛程序如何影響網站排名 (搜索引擎優化名詞解釋)

搜索引擎優化的利器:蜘蛛程序如何影響網站排名 (搜索引擎優化名詞解釋)

引言搜索引擎優化,SEO,是一門復雜的學科,涉及多種因素,以提高網站在搜索引擎結果頁面,SERP,中的排名,其中最關鍵的因素之一就是蜘蛛程序,也被稱為網絡爬蟲或搜索引擎機器人,什么是蜘蛛程序,蜘蛛程序是由搜索引擎,如谷歌、百度和必應,發送的自動化程序,它們探索互聯網,抓取和索引網頁,它們的作用是收集有關網站及其內容的信息,以便搜索引擎...。

本站公告 2024-09-11 17:51:48

多渠道在線客服系統源碼:跨越平臺無縫連接客戶 (多渠道在線客服系統)

多渠道在線客服系統源碼:跨越平臺無縫連接客戶 (多渠道在線客服系統)

簡介在當今數字時代,提供卓越的客戶服務至關重要,為了滿足客戶不斷變化的需求,企業需要采用多渠道在線客服系統,使他們能夠通過多種平臺與客戶互動,從而創造無縫、集成的客戶體驗,本文將提供一個多渠道在線客服系統源碼,供您下載和定制,以滿足您的特定需求,該系統旨在幫助您,通過WhatsApp、FacebookMessenger、電子郵件和實時...。

本站公告 2024-09-11 06:33:18

淘寶導航代碼終極指南:打造無與倫比的店鋪入口 (淘寶導航代碼怎么設置)

淘寶導航代碼終極指南:打造無與倫比的店鋪入口 (淘寶導航代碼怎么設置)

在競爭激烈的淘寶市場中,找到一個有效的方法來吸引和保留客戶對于任何企業來說都是至關重要的,一個精心設計的淘寶導航代碼可以為您的店鋪提供一個無與倫比的入口,幫助您在人群中脫穎而出,什么是淘寶導航代碼,淘寶導航代碼是一段HTML代碼,您可以將其添加到您的淘寶店鋪頁面中,該代碼創建一個自定義導航欄,為您的客戶提供快速輕松地瀏覽您的產品、服務...。

技術教程 2024-09-10 21:56:36

從黑框到亮眼網站:探索黑色背景的轉換奇跡

從黑框到亮眼網站:探索黑色背景的轉換奇跡

在網頁設計的世界中,黑色背景長期以來一直被認為是不受歡迎的,甚至是禁止的,隨著時間的推移,這種傳統正在發生轉變,黑色背景重新煥發了生機,成為網站設計中引人注目的選擇,黑色背景的優勢使用黑色背景具有許多優勢,其中包括,突出元素,黑色背景可以有效地突出網站上的元素,例如圖像、文字和按鈕,使其更加醒目,增強對比度,黑色和白色之間的鮮明對比度...。

技術教程 2024-09-09 17:25:31

讓織夢CMS提升音樂網站的參與度和影響力 (織夢cms使用教程)

讓織夢CMS提升音樂網站的參與度和影響力 (織夢cms使用教程)

織夢CMS是一款功能強大的開源內容管理系統,專為建立和管理網站而設計,它擁有豐富的功能,能夠讓網站所有者輕松地創建和管理內容、自定義設計、添加功能并提高網站的參與度和影響力,織夢CMS如何提升音樂網站的參與度創建和管理互動社區,織夢CMS允許網站所有者創建一個論壇或留言板,讓用戶可以在網站上進行互動和討論,這可以幫助建立一個音樂愛好者...。

最新資訊 2024-09-07 22:42:16

Copyright ? 2025 聚集網 All Rights Reserved
此內容系本站根據來路自動抓取的結果,不代表本站贊成被顯示網站的內容或立場。
本頁閱讀量次 | 本站總訪問次 | 本站總訪客人 | 今日總訪問次 | 今日總訪客人 | 昨日總訪問次 | 昨日總訪客人 |
技術支持:聚集網

国产精品成人免费视频_91丝袜美腿美女视频网站_国产一区二区三区在线看_亚洲欧美另类中文字幕_在线电影av不卡网址_国产视频丨精品|在线观看_日韩一区二区三区国产_国产欧美va欧美va香蕉在线_热re91久久精品国99热蜜臀_亚洲第一精品电影_久久九九亚洲综合_国产成人综合精品_97视频在线观看网址_精品视频久久久久久_日韩av片免费在线观看_久久精品国产99国产精品澳门
欧美激情精品久久久久久久变态| 欧美日韩精品在线视频| 亚洲三级 欧美三级| 国产午夜精品一区理论片飘花| 欧美成人在线影院| 亚洲色图色老头| 狠狠色噜噜狠狠狠狠97| 亚洲激情视频在线观看| 亚洲电影免费观看高清完整版在线| 日韩中文字幕视频在线| 日韩在线激情视频| 91av免费观看91av精品在线| 国产精品成人免费电影| 国产成人高潮免费观看精品| 国产一区二区三区高清在线观看| 91精品国产91久久久久久最新| 精品偷拍一区二区三区在线看| 午夜精品一区二区三区在线| 911国产网站尤物在线观看| 国产成人精品综合| 国产一区欧美二区三区| 亚洲小视频在线观看| 国产第一区电影| 欧美日韩高清区| 亚洲国产成人在线播放| 亚洲欧美一区二区三区情侣bbw| 日韩在线视频中文字幕| 国产精品久久久一区| 日韩中文字幕网| 91av在线免费观看视频| 亚洲精品av在线播放| 热re99久久精品国产66热| 精品福利在线视频| 日韩av在线免费播放| 91综合免费在线| 欧美激情综合色综合啪啪五月| 国产97免费视| 亚洲成人av片在线观看| 91精品国产自产在线| 国产一区二区色| 国产精品天天狠天天看| 欧美日韩国产影院| 亚洲色图日韩av| 久久久视频精品| 日韩精品在线私人| 亚洲精品美女免费| 欧美巨乳在线观看| 一区二区在线视频播放| 91国产精品电影| 91精品综合久久久久久五月天| 欧美视频免费在线观看| 国产精品青青在线观看爽香蕉| 国产自产女人91一区在线观看| 亚洲国产精品专区久久| 日韩电影中文字幕| 欧美日韩一区二区在线播放| 亚洲精品短视频| 久久精品国亚洲| 欧美中在线观看| 国产精品女人久久久久久| 欧美高清在线播放| 国产精品久久久久高潮| 久久久久久免费精品| 欧美日本在线视频中文字字幕| 92看片淫黄大片看国产片| 欧美日韩美女视频| 日韩久久免费视频| 91在线高清免费观看| 日韩中文字幕av| 日韩在线不卡视频| 欧美专区在线播放| 国产精品亚洲第一区| 欧美专区日韩视频| 欧美日韩在线免费观看| 色yeye香蕉凹凸一区二区av| 亚洲色图美腿丝袜| 欧美风情在线观看| 欧美福利小视频| 91在线国产电影| 欧美日韩国产精品一区二区三区四区| 国产午夜精品全部视频播放| 国产精品一区二区av影院萌芽| 亚洲美女av黄| 色777狠狠综合秋免鲁丝| 精品久久久久久久久久久久久| 精品综合久久久久久97| 国产精品久久久av久久久| 92看片淫黄大片欧美看国产片| 中文字幕亚洲一区在线观看| 97久久国产精品| 日韩在线观看免费高清完整版| 欧美大人香蕉在线| 欧美性生交xxxxx久久久| 88国产精品欧美一区二区三区| 日韩中文字幕免费看| 国产精品美乳一区二区免费| 国产91精品视频在线观看| 亚洲精品一区二区三区婷婷月| 欧美高跟鞋交xxxxxhd| 欧美精品在线视频观看| 欧美又大粗又爽又黄大片视频| 成人免费淫片视频软件| 国产亚洲日本欧美韩国| 日韩毛片中文字幕| 日韩中文在线视频| 久久久精品一区二区三区| 亚洲欧美制服另类日韩| 国产精品xxx视频| 日本aⅴ大伊香蕉精品视频| 91中文在线观看| 亚洲成人av片在线观看| 国产日韩欧美夫妻视频在线观看| 精品无人区太爽高潮在线播放| 中文字幕不卡av| 国产精品免费一区| 91超碰中文字幕久久精品| 日韩欧美国产网站| 欧美电影免费观看高清| 亚洲成人1234| 亚洲欧美成人在线| 国产精品户外野外| 91久久精品一区| 91麻豆桃色免费看| 亚洲成人精品在线| www.日韩.com| 久久综合九色九九| 久久夜色精品国产欧美乱| 久久久久久国产免费| 97视频在线观看亚洲| 91精品国产91久久久久久久久| 欧美激情视频网| 日韩亚洲成人av在线| 成人做爰www免费看视频网站| 久久91亚洲人成电影网站| 国产经典一区二区| 亚洲激情在线观看视频免费| 色爱av美腿丝袜综合粉嫩av| 精品久久久久久久中文字幕| 国外成人在线播放| 国产精品女视频| 国产欧美一区二区三区视频| 日韩av中文字幕在线播放| 最近2019年中文视频免费在线观看| 国产精品99久久久久久久久久久久| 中文字幕日本欧美| 日韩美女视频在线观看| 2019日本中文字幕| 91精品国产91久久久久久吃药| 欧美又大又粗又长| 国产97人人超碰caoprom| 国产欧美日韩综合精品| 亚洲精品视频在线观看视频| 亚洲加勒比久久88色综合| 亚洲欧美成人在线| 欧美日韩亚洲网| 97婷婷大伊香蕉精品视频| 美女999久久久精品视频| 成人网欧美在线视频| 国产精品久久久久久久久久新婚| 国产精品免费小视频| 国产精品av在线播放| 日韩在线播放一区| 91精品啪在线观看麻豆免费| 午夜欧美大片免费观看|