關於C#泛型中的new()約束

對於new()約束,大家可能有一個誤解,以為使用了new約束之後,在建立對象時與非泛型的版本是一致的: public class Tester<T>         where T:new()    {        public Tester()        {            t = new T();//等同於非泛型版本的new? 例如 object o = new object();?        }        private T t;   

[C++/CLI] 解構函式等於IDisposable::Dispose()方法

在以前的一篇文章裡我曾提到在C++/CLI中,會自動調用Dispose()方法。但那個時候只是從msdn上的文章中知道這樣一個特性,還沒有編譯器的支援,所以一切也只能是紙上談兵,很多細節都很不明朗。VC會以什麼樣的方式來提供這一特性,一直是我常思考的問題。然而甚至到VS.net 2005 beta1發布時,這一特性還沒有得到支援。好在,在最新的Visual C++ 2005 Tool

[C++/CLI]在棧上聲明Reference Type

在上次介紹顯示釋放資源的文章,我提到了C++/CLI中提供了一種新的對象執行個體化文法,就彷彿在native

解讀C#Regex

多少年來,許多的程式設計語言和工具都包含對Regex的支援,.NET基礎類庫中包含有一個名字空間和一系列可以充分發揮規則運算式威力的類,而且它們也都與未來的Perl

C#枚舉系統安裝的所有印表機

在下面的程式中我們將把系統中所安裝的印表機用列表框列出來,同時為預設印表機設定預設值。   在下面的程式中我們用到了兩個主要的類,把所有的印表機列表出來用到了PrinterSettings 類,擷取系統預設印表機用到了PrintDocument 類,下面我們就動手實踐一下吧。   先建立一個windows form的工程,然後加入一個lable和一個comBox,就行啦,關鍵在下面啦,我們如何獲得預設印表機,就得用下面的語句。 PrintDocument prtdoc = new

C# 控制項的縮寫

C# 控制項的縮寫1 btn Button 2 chk CheckBox 3 ckl CheckedListBox 4 cmb ComboBox 5 dtp DateTimePicker 6 lbl Label 7 llb LinkLabel 8 lst ListBox 9 lvw ListView 10 mtx MaskedTextBox 11 cdr MonthCalendar 12 icn NotifyIcon 13 nud NumeircUpDown 14 pic PictureBox

C#泛型: Constraints

請看以下常式:using System; namespace ConsoleApplication1{      interface ITest     {            void TestMethod();      }      class TestType : ITest     {              //public testType(int i) {}             public void TestMethod()             {         

C++/CLI: automatic loading of IDisposable::Dispose

在C#中,Dispose()方法必須由程式員自己顯示的調用,如果你忘記了這麼做,那麼在GC回收這個對象之前,它的非託管資源都得不到釋放。相比較之下,C++中的解構函式就顯得比較優雅:在對象退出範圍後,會自動調用解構函式。在C#雖然也有解構函式,但是那實際上是一個Finalize()方法。大家都知道Finalize()方法有很多問題。在C++/CLI(VS2005中的managed C++),解構函式將被編譯器映射到IDisposable::Dispose()方法。並且像在native

C#: 方法的預設參數

大家都知道在C++中,我們可以為方法的參數指定一個預設值,像這樣:void foo(int i = 100);當我們以這種形式調用方法的時候: foo(); 實際上參數i被賦於了預設值,所以相當於調用了foo(100);然而在C#中是不支援參數的預設值的,那麼如果我們要用到類似的功能應該怎麼實現呢?考慮下面這個例子:class Buffer{      public Buffer(int bufferSize = 100) //Compile Error     {           

C++: Metaprogramming

今天在書店裡翻 "C++ template" 學習了一下以前一直不明白的Metaprogramming,發現原來就是那個在模板裡加enum的技巧的應用,仔細想一下果然可以衍生出很多用途,下面是一個最簡單的例子:#include <iostream>using namespace std;template<int n>class twoPower{public: enum { result = 2*twoPower<n-1>::result

在win32 api程式中:使用C++風格的字串

初學win32 api程式設計的人,通常對於C語言的字串和數字轉換感到比較頭痛。尤其像我這樣只學過C++,卻不諳C語言的標準庫的人,使用起char*和atoi()來實在是如履薄冰 所以我總琢磨著在api程式裡用上C++標準庫裡的string。經過一番折騰發現還是可以的。以下進入正題:首先我們知道windows為瞭解決unicode的問題,定義了一個TCHAR的typedef,會根據是否使用unicode來定義成char 或者

C#2.0泛型中的變化: default 關鍵字

今天回答別人問題的時候,才發現原先的T.default文法被取消了,使用了新的default關鍵字來實現這一功能。還好回複前動手試了一下,不然就...-_-b下面詳細說明一下。之所以會用到default關鍵字,是因為需要在不知道型別參數為實值型別還是參考型別的情況下,為對象執行個體賦初值。考慮以下代碼:class TestDefault<T>    {        public T foo()        {            T t = null; //???       

第二章 .NET和C#評說

一,概論  Windows內建了COM基礎設施(最成功的跨語言非跨平台機制)而導致了基於COM的ASP的巨大成功。未來的Windows.NET作業系統也許就將把C#.net和VB.net推上新的王者之位。  Web Services技術並非微軟獨創,也不是由.NET帶來的。  .NET架構由通用語言運行時(Common Language

第一章 C#的BLOG序言

學習C#,並不是什麼新鮮事,網路上數以百計的新手撲入這個行列中,而且以後還會越來越多,直到C#成為下一個ASP……只為了學習一門語言,並用不著寫一個blog,但是為了把學習變成一項有形的東西,就首推blog了。寫blog,是為了深入C#的學習深度,可以和自己昨天的學習作比較,一天積累一點,然後漸漸就前進了一大步。寫blog,也是為了淡出C#而作準備,C#不會是軟體工程的萬靈丹,學得越深入就會越受它的束縛。而到那個時候,就該收手了,整理一下從前至今的材料,製做成方便與別人交流的筆記,教程或者別的什

C#中擷取Excel檔案中的表名

excel檔案中第一個表名的預設值是sheet1$, 但有時也會被改變為其他名字. 如果需要在C#中使用OleDb讀寫Excel檔案, 就需要知道這個名字是什麼. 以下代碼就是實現這個功能的: using System; using System.IO; using System.Data; using System.Data.OleDb; namespace Skyiv.Ben.Util { sealed class Pub { public static string GetExcelFir

如何在C#中播放AVI短片並使背景透明

在C#編程的時候,由於一個功能需要播放一小段的AVI格式的短片,結果找了半天也沒有搞定如何來進行播放。於是本人在網上查呀查呀!找了半天終於找到了一個方法播放檔案。他的方式是首先用下面的命令為媒體播放器控制項:msdxm.ocx 產生 MediaPlayer.dll 和 AxMediaPlayer.dll。命令為:aximp c:\winnt\system32\msdxm.ocx 而通常msdxm.ocx中的ActiveX控制項都未註冊! 再運行regsvr32

C#的四種排序演算法

本文介紹了C#的四種排序演算法:冒泡排序、選擇排序、插入排序和希爾排序 冒泡排序using System;namespace BubbleSorter{ public class BubbleSorter{ public void Sort(int [] list){ int i,j,temp;bool done=false;j=1;while((j<list.Length)&&(!done)){

用C#實現在Word文檔中搜尋文本

在word應用程式中搜尋和替換文本是舉手之勞的事情,通過word的物件模型,我們也可以使用編程方式來實現。    Word的物件模型有比較詳細的協助文檔,放在 Office 安裝程式目錄,office 2003是在Program Files\Microsoft Office\OFFICE11\2052下,文檔本身是為VBA提供的,在這個目錄下還可以看到所有的office應用程式的VBA協助。   

C#實現所有經典排序演算法

C#實現所有經典排序演算法 //選擇排序   class SelectionSorter   {       private int min;       public void Sort(int[] arr)       {           for (int i = 0; i < arr.Length - 1; ++i)           {               min = i;               for (int j = i + 1; j <

一個基礎的C#的ACCESS操作類

   假設存在一個ACCESS資料庫路徑為“c:\db.mdb”,裡面有一個表名叫student,並且已經有一個表格控制項datagridview1,該類的使用例子如下: ... using AccessDb; ...             //初始化,載入資料庫路徑             AccessDbClass mydb = new AccessDbClass("c:\db.mdb");

總頁數: 4314 1 .... 411 412 413 414 415 .... 4314 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.