設計模式(C#)

返回“設計模式(C#)系列文章索引”介紹為解除請求的寄件者和接收者之間耦合,而使多個對象都有機會處理這個請求。將這些對象連成一條鏈,並沿著這條鏈傳遞該請求,直到有一個對象處理它。樣本有一個Message實體類,某個類對它的操作有Insert()方法。現在要求根據插入資訊的字元長度,讓不同的對象去處理,這些對象連成一條鏈,並沿著這條鏈傳遞該請求,直到有一個對象處理它。

C#基礎之String篇

曾經看到過許多同事寫過一些類似於StringHelper類(封裝一些常用的字串操作方法的類),我自己也寫過類似的類,封裝一些拼接字串,比較字串,判斷字串等常用的字串操作方法。現在發現,這些方法中大部分都是多餘的,微軟已經為字串提供了許多常用的操作了,而且比自己寫的更強大,更容易使用。下面列舉一些常用的方法:string input = " , abcde , ";string[] inputs = { "a", "b",

C#實現十進位數轉換為二進位、八進位、十六進位數的演算法

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace ExDtoB { public partial class Form1 : Form {

C# 3.0中新匿名型別特性初體驗

在去年PDC2005上,在發布C#2.0 (C# Whidbey)的同時,微軟也同時展示了它 們在C# 3.0上的一些計劃。在提到一系列新的語言特性如Language-integrated Query (LINQ)(LINQ)等 ,Redmond同時也介紹了一個新的特性--匿名型別。本文詳細介紹了匿名型別。匿名型別定義C#3.0規範將匿名型別描述為從對象初始化器 (object initializer)自動推斷和產生的元群組類型。在你能夠充分領會這一定義

C# 3.0新特性體驗之Lambda運算式

C#2.0介紹了一個新特性--匿名方法,允許開發人員線上(inline)聲明自己的函 數代碼而無須使用委託函數(delegate function)。C#3.0中提供了一個新特性- -Lambda運算式,它提供了完成相同目標的更加簡潔的格式。讓我們在討論 Lambda運算式以前仔細研究一下匿名方法。匿名方法假設你需要建立一個按鈕,當點擊它的時候更新ListBox裡的內容。在C#1.0 和1.1裡,你要這樣做:public MyForm(){ listBox = new ListBox(...);

如何用C#編寫文字編輯器

前言小弟從大學裡開始接觸編程也有6年了,工作4年也是幹編程的活,見過不少程式,自己也編過不少,在學校編程自己覺得是搞藝術品,其實玩一些遊戲,比如文明法老王星際等從某些角度看也是搞藝術品,看著自己苦心經營的建築物和人員由少變多,由簡單變複雜,心中有些成就感。編程也一樣,程式從幾十行寫到上萬行,功能由HellowWord到相當複雜而強大,心中也有不少成就感。畢業後工作,才漸漸感悟軟體開發本質上是做一個工具,這個工具給別人或者自己用。有了工具,很多問題就迎刃可解了。如此開來偶們程式員和石匠鐵匠木匠是同

C# 3.0新特性系列:隱含類型var

一.神奇的var在C#3.0中增加了一個變數聲明var,這個聲明和JavaScript 的 var類似,但 也有不同。1. 相同點,它可以用var來聲明任何類型的局部變數。2. 不同點,它僅僅負責告訴編譯器,該變數需要根據初始設定式來推斷變 量的類型,而且只能是局部變數。二.相同點它可以聲明var integer = 10;var name = "edisundong";var numbers = new int[] { 1, 2, 3 };三.不同點var僅僅是一個關鍵字,

初探C# 3.0

C#3.0已經推出好一段時間了,由於種種原因,一直沒有去學習,這兩天在園 子中看到老趙的拯救C# 2.0,但是我們真做的到嗎?。裡面提到了些C#3.0的新 特性和優勢。勾起了我對3.0的興趣,初探學習一下,分享給新手。在 C#2.0中,微軟給我們帶來了一些新的特性,例如泛型,匿名委託等。然而,這 些新的特性多多少少會給人一種從別的語言中“抄”來的感覺(例如 泛型類似C++的模板,一些屬性類別似Java中的一些東西)。但是在C#3.0中,微軟

執行個體C#:學習使用StatusStrip

先瞭解一下StatusStrip:首選StatusStrip是Form中的一個控制項,同時也是一個大的控制項,其中含有許多子控制項,這些子控制項存放在控制項群中。這樣我們要使用StatusStrip時,首先要定義StatusStrip,然後定義ToolStrip控制項,再次定義ToolStrip控制項群,第三將ToolStrip控制項加入到控制項群中,第四將控制項群加入到StatusStrip中,最後要將StatusStrip加入到表單中。舉例說明:本例是在Form表單中加入工作列,並在工作列左

用Visual C# 2005建立捷徑

建立捷徑對於絕大多數 Windows 使用者來說都是小菜一碟了,然而,這項 工作卻為程式員帶來不少麻煩。.NET 沒有提供簡便直接的建立捷徑的方法 ,那麼在 .NET 中我們如何為應用程式建立捷徑呢?1. 捷徑文 件捷徑實質上是一個副檔名為 .LNK 的檔案。右擊一個捷徑文 件並選擇屬性,跳到捷徑選項卡,如圖1所示:你可 以看到一個捷徑包含如下資料:·捷徑的名字·捷徑所指向的目標所在的位置·捷徑所

《Effective C#》:實值型別和參考型別

在C#中有兩種類型的資料,一種是實值型別資料,一種是參考型別資料。在編 碼的時候區分這兩種類型資料,可以避免一些細小的編碼錯誤。首先說 說什麼類型是實值型別,例如:int、float、bool之類的基礎類型,以及用struct 定義的類型,如:DateTime。除此外,如string,數組,以及用class定義的類 型等都是參考型別。對於C#來說,很難羅列出所有類型進行一一分別,這需要自己在編碼過程中進行分析總結。為了更好地說明兩種類型之間的區別, 借用如下的表格來說明。

《Effective C#》:使用成員初始化語句

為了方便內容的開展,我先說說一個對象的構造過程。對於類型第一 個執行個體的構造過程大致如下:1.分配靜態成員的記憶體空間,此時空間存 儲資料為0;2.執行靜態成員的初始化語句;3.執行基類的靜 態建構函式;4.執行類型的靜態建構函式;5.分配成員的記憶體 空間,此時空間儲存資料為0;6.執行成員的初始化語句;7. 執行相應的基類建構函式;8.執行類型的建構函式。那麼對於 同類型的後續建立對象,前4個步驟不用執行的,直接從第5步開始。現

《Effective C#》之減少裝箱和拆箱

為了便於文章的開展,首先介紹裝箱(Boxing)和拆箱(Unboxing)這兩個名詞 。.Net的類型分為兩種,一種是實值型別,另一種是參考型別。這兩個類型的本質 區別,實值型別資料是分配在棧中,而參考型別資料分配在堆上。那麼如果要把一 個實值型別資料放到堆上,就需要裝箱操作;反之,把一個放在堆上的實值型別資料 取出來,則需要進行拆箱操作。例如,對於如下簡單的裝箱和拆箱操作 語句。int i = 123;  object obj = i;//Boxing  if( obj is int

《Effective C# 精髓》摘選

昨天買了一本《Effective C#》,看了幾個Item,雖然沒有當初讀 《Effective C++》時的那般震撼,但是也收穫不少。把其中的要點記錄於下, 有些條款加上了自己的理解,權當作讀書筆記吧 :-)Item 1: Always Use Properties Instead of Accessible Data Members這個是地球人都 知道的條款了。你需要記住,屬性是類的外部介面部分,而(公用)成員卻是內

Effective C#原則50:瞭解ECMA標準

ECMA標準是C#語言所有功能的官方說明。ECMA-334定義了C#語言1.0的標準, 你可以從The C# Programming Language這本書上學習C#2.0的計劃(譯註:現在 已經不是計划了),這本書的作者是Anders Hejlsberg, Scott Wiltamuth, 和 Peter Golde (Addison-Wesley, 2003)。這本書是一個語言手冊,而不是指南。 它詳細說明了這門語言書面定義的每一個功能。每一種語言都只一種標記,可以

Effective C#原則44:建立應用程式特定的異常類

異常是一種的報告錯誤的機制,它可以在遠離錯誤發生的地方進行處理錯誤。所有關於錯誤發生的的資訊必須包含在異常對象中。在錯誤發生的過程中,你 可能想把底層的錯誤轉化成詳細的應用程式錯誤,而且不丟失關於錯誤的任何信 息。你須要仔細考慮關於如何在C#應用程式中建立特殊的異常類。第一步就是 要理解什麼時候以及為什麼要建立新的異常類,以及如何構造繼承的異常資訊。當開發人員使用你的庫來寫catch語句時,他們是基於特殊的進行時異常在區別為 同的行為的。每一個不同的異常類可以有不同的處理要完成:try

Effective C#原則41:選擇DataSet而不是自訂的資料結構

因為兩個原則,把DataSet的名聲搞的不好。首先就是使用XML序列化的 DataSet與其它的非.Net代碼進行互動時不方便。如果在Web服務的API中使用 DataSet時,在與其它沒有使用.Net架構的系統進行互動時會相當困難。其次, 它是一個很一般的容器。你可以通過欺騙.Net架構裡的一些安全類型來錯誤 DataSet。但在現代軟體系統中,DataSet還可以解決很多常規的問題。如果你明 白它的優勢,避免它的缺點,你就可以擴充這個類型了。DataSet類設計

Effective C#原則34:建立大容量的Web API

互動協議的開銷與麻煩就是對資料媒體的如何使用。在互動過程中可能要不 同的使用媒體,例如在交流中要不同的使用電話號碼,傳真,地址,和電子郵件 地址。讓我們再回頭來看看上次的訂購目錄,當你用電話訂購時,你要回答售貨 員的一系列問題:“你可以把第一項填一下嗎? ”“這一項的號碼是123-456”"您想訂購 多少呢?""三件"這樣的問題一直要問到銷售人

C#網路版鬥地主——地主許可權的傳遞

本文是對C#網路版鬥地主的總結。首先伺服器使用一個隨機數來隨即選出預設地主。然後發送資訊給選出來的玩家。玩家接收到資訊後顯示兩個按鈕“叫地主”,“不叫”。如果選擇不叫,則把可以叫地主的許可權發送給另外一個玩家,如果另外兩個玩家都不要的話,就執行Restart()方法重新發牌。叫地主許可權的行程順序如下圖所示:具體實現方法:伺服器得到一個1-3的隨機數,1代表格服務器是預設地主(預設地主就是隨機播放的第一個有許可權叫地主的玩家),2代表client1

C#代碼關閉Windows XP

using System;using System.Runtime.InteropServices; class shoutdown{ [StructLayout(LayoutKind.Sequential, Pack=1)] internal struct TokPriv1Luid {   public int Count;   public long Luid;   public int Attr; } [DllImport("kernel32.dll",

總頁數: 4314 1 .... 1152 1153 1154 1155 1156 .... 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.