環境: Microsoft Visual Studio 2005 + Office2003 目的: 採用C#語言,通過Microsoft Excel 11.0 Object Library操作excel.問題:
定義:模板方法模式在一個方法中定義一個演算法的骨架,而將一些步驟延遲到子類中,模板方法使得子類可以在不改變演算法結構的情況下,重新定義演算法中的某些步驟。鉤子的定義:鉤子是一種被聲明在抽象類別中的方法,但只有空的或者預設的實現。鉤子的存在,可以讓子類有能力對演算法的不同點進行掛鈎。究竟需不需要掛鈎,則由子類自行決定。情境:我們有一個咖啡廳,有一個專門的配方來調製咖啡喝茶,在調製的過程中的某些方法其實是比較類似的,步驟如下:1、把水煮沸2、用熱水泡咖啡或茶3、把飲料倒進杯子4、在飲料內加入適當的調
前言 項目之外,公司要求把客戶上傳的xls資料檔案按條件拷貝一份出來,可是這些上傳的檔案都已經重新命過名,不過還好有上傳的記錄,包括檔案新命名的規則.於是只需要寫一個程式來批量獲得這些被重新命過名的檔案然後拷貝出來就行了.正題 我是直接建立的一個aspx並在後台代碼裡寫的,帖cs代碼:using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;u
定義:迭代器模式提供一種方法順序訪問一個彙總對象中的各個元素,而又不暴露其內部的表示。情境:我們有兩個彙總A和B,有一個彙總管理的類,包含彙總A和B,而這個管理類的功能就是依次遍曆它所包含的彙總中的元素並列印到控制台上。每個彙總中的元素存放的方式是不同的,有的用的是數組,有的可能是vector或者list等,因此我麼為每個彙總定義了一個迭代器,管理類只需要依次擷取各彙總的迭代器,使用迭代器去遍曆其中的元素,而不需要去理會彙總中元素的存放方式。類圖:c++代碼如下:#include
一般察看函數運行時堆棧的方法是使用GDB之類的外部調試器,但是,有些時候為了剖析器的BUG,(主要針對長時間運行程式的分析),在程式出錯時列印出函數的呼叫堆疊是非常有用的。在標頭檔"execinfo.h"中聲明了三個函數用於擷取當前線程的函數呼叫堆疊Function: int backtrace(void **buffer,intsize)該函數用與擷取當前線程的呼叫堆疊,擷取的資訊將會被存放在buffer中,它是一個指標列表。參數 size用來指定buffer中可以儲存多少個void* 元素。
FileStream對象表示在磁碟或網路路徑上指向檔案的流。這個類提供了在檔案中讀寫位元組的方法,但經常使用StreamReader或StreamWriter執行這些功能。這是因為FileStream類操作的是位元組和位元組數組,而Stream類操作的是字元資料。這是這兩種類的一個重要區別,如果你是準備讀取byte資料的話,用StreamReader讀取然後用System.Text.Encoding.Default.GetBytes轉化的話,如下,則可能出現資料丟失的情況,如byte資料的個數不
本文章講敘了怎樣在c#裡處理xml文檔,都是些比較基本的。首先,我們先自建一個xml文檔,如下: <?xml version="1.0" encoding="UTF-8"?><peoplelist> <person> <name>Tom Stafford</name> <title>CFO</title> </person> <person>
由來: 前一段時間把收藏的google徽標都上傳到部落格上來,上傳的時候發現不支援批量上傳圖片,而且上傳的圖片名稱還不一樣!!我靠!一百多張圖片要弄到猴年馬月才能上傳完畢啊!!於是乎想辦法偷懶:先下了一個批量變更檔名的工具,把圖片通過改成了1~1百多.jpg,然後寫了一個剪下板的程式來動態更改每次複製的檔案名稱,這樣只需要每次CTRL+C然後點一下上傳然後再CTRL+C點一下上傳...實現:
我們這裡需要討論的是C#是編譯語言還是解釋語言?將從定義來進行討論,並結合流程圖來說明。希望最後的結論,能對大家有所協助。 翻了翻龍書,也沒有給這兩個概念下詳細的定義,可見兩個概念是很難下個精確的定義的。. h( b& W0 ^! N" V, `' }2 T+ j在<>(by Michaei L. Scott)這本書裡面,我找到了相關的定義和說明,特摘錄如下Compilation and Interpretation, Z+ t- d; u2 T#
在上一講介紹了使用lock來實現C#線程同步。實際上,這個lock是C#的一個障眼法,在C#編譯器編譯lock語句時,將其編譯成了調用Monitor類。先看看下面的C#原始碼:public static void MyLock() { lock (typeof(Program)) { } } 上面的代碼通過lock語句使MyLock同步,這個方法被編譯成IL後,代碼1所示。 圖1
初次接觸“資料對齊”這個概念的時候,大概是在學習C語言基礎結構體的時候,當時就記得老師說,這是以後找工作面試最常問的一個問題。後來雖然把基本思路摸清楚了,但是關於在電腦系統中的具體原因,我也沒有去仔細深究,大概是為以空間去換取效率吧。昨天晚上瀏覽部落格園的時候,注意到有個朋友寫了這樣一篇,看的時候總覺得解釋的比較彆扭,和我之前的理解大相徑庭。由於是手機上網,也沒有多加驗證,今天開啟電腦突然想起這個問題,就簡單編寫測試程式驗證了一下。也把資料對齊這個概念重新溫習了一遍。找了許多中文資料,關於資料對
學習C#語言時,經常會遇到檔案的壓縮和解壓縮問題,這裡將介紹C#使用SharpZipLib進行檔案的壓縮和解壓縮。 C#使用SharpZipLib進行檔案的壓縮和解壓縮 我在做項目的時候需要將檔案進行壓縮和解壓縮,於是就從http://www.icsharpcode.net下載了關於壓縮和解壓縮的源碼,但是下載下來後,面對這麼多的代碼,一時不知如何下手。只好耐下心來,慢慢的研究,總算找到了門路。針對自己的需要改寫了檔案壓縮和解壓縮的兩個類,分別為
最近在家閑來無事,突然有了錄製一套視頻教程的想法,因為自己從無到有的做過一個新聞管理系統,從需求分析開始到最後的測試與發布,故而就把整個製作過程講解一遍並錄製成視頻,供初學者學習和參考。 從該套視頻中初學者能夠學到基於b/s結構的新聞發布系統的開發過程,包括:1. 簡單的需求分析2. 資料庫的設計:邏輯結構的設計、物理結構的設計、及資料庫文檔的編寫3. 預存程序的編寫:把sql語句寫到預存程序中,避免寫入程式碼到程式碼中。4. 類的設計:主要採用分層結構的思想5. 頁面的設計:
本文介紹了C#強制轉換問題,即(int),Int32.Parse() 和 Convert.toInt32()的三種方法。在C#強制轉換中,(int),Int32.Parse() 和 Convert.toInt32() 三種方法有何區別? int 關鍵字表示一種整型,是32位的,它的 .NET Framework 類型為 System.Int32。 (int)表示使用顯式強制轉換,是一種類型轉換。當我們從int類型到long、float、double 或decimal 類型,可以使用隱式轉換,
根據C# programming
那用Dispose方式非託管資源就是最好的方法了嗎?其實不然,因為類型實現了IDispose介面,這個類的使用者必須顯示調用Dispose方法,或者在建立該類型對象的時候使用using關鍵
首先把AjaxPro.dll檔案添加到引用中,可以到http://www.schwarz-interactive.de/下載 根據你的.net 版本來選擇不同的DLL檔案.default.aspx.cs:public partial class _Default : System.Web.UI.Page { string connectString = "";//定義自已的串連串 protected void Page_Load(object sender,
default.aspx:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
不帶參數的:Default.aspx.cs: public partial class _Default : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default )); } [AjaxMethod] public string
最近看到一篇來自Arul Chinnappan扼要明了的委託介紹,翻譯了一下和大家共用,翻譯水平和時間都有限,大家見諒。 委託的定義:委託是一種在對象裡儲存方法引用的類型,同時也是一種型別安全的函數指標。委託的優點:壓縮方法的調用。合理有效地使用委託能提升應用程式的效能。用於調用匿名方法。委託的聲明:委託應使用public delegate type_of_delegate delegate_name()的形式來聲明。樣本:public delegate int