Time of Update: 2018-12-05
C#線程鎖(上)本篇從Monitor,Mutex,ManualResetEvent,AutoResetEvent,WaitHandler的類別關係圖開始,希
Time of Update: 2018-12-05
今天看到這篇文章一個在C#以及類似的物件導向系統(Java中估計也是如此)中常見的錯誤,感觸頗多,說句實在話,國內目前的OO語言教學中忽略了一個關鍵的一環“OO的物件模型”,這裡有本好書:侯捷的《深度探索C++物件模型》。看過的與沒有看過的,對理解OO的物件模型有層次的不同。看過的人往往會思考:“編譯器到底做了什麼”?沒看過的會想當然:“應該是這樣的,就是這樣的......”。比如把一個子類對象強制轉換為基類對象,其實編譯器處理就是把該對象作為基類對象來處理(即對象的Slip)。當然調用的方法
Time of Update: 2018-12-05
四.Visual C#實現合并檔案的解決方案及其具體實現步驟: Visual C#實現合并檔案的思路是首先獲得要合并檔案所在的目錄,然後確定所在目錄的檔案數目,最後通過迴圈按此目錄檔案名稱的順序讀取檔案,形成資料流,並使用BinaryWriter在不斷追加,迴圈結束即合并檔案完成。具體的實現方法請參考下面步驟中的第步。以下就是Visual C#實現合并檔案的具體實現步驟: 1. 啟動Visual Studio .Net。 2.
Time of Update: 2018-12-05
1: #ifndef __INCvxWorksh 2: #define __INCvxWorksh 3: #ifdef __cplusplus 4: extern "C" { 5: #endif 6: /*...*/ 7: #ifdef __cplusplus 8: } 9: #endif 10: #endif /* __INCvxWorksh */顯然,標頭檔中的編譯宏“#ifndef __INCvxWorksh、#define
Time of Update: 2018-12-05
1:記憶體對齊定義: 現在使用的電腦中記憶體空間都是按照位元組劃分的,從理論上講似乎對任何類型的變數的訪問可以從任何地址開始,但是實際上電腦系統對於基礎資料型別 (Elementary Data Type)在記憶體中的存放位置都有限制,要求這些資料存放區首地址是某個數K的倍數,這樣各種基礎資料型別 (Elementary Data Type)在記憶體沖就是按照一定的規則排列的,而不是一個緊挨著一個排放,這就是記憶體對齊。對齊模數:
Time of Update: 2018-12-05
便於對文章的開展,需要先明確兩個概念。第一個就是很多人用.Net寫程式,會談到託管這個概念。那麼.Net所指的資源託管到底是什麼意思,是相對於所有資源,還是只限於某一方面資源?很多人對此不是很瞭解,其實.Net所指的託管只是針對記憶體這一個方面,並不是對於所有的資源;因此對於Stream,資料庫的串連,GDI+的相關對象,還有Com對象等等,這些資源並不是受到.Net管理而統稱為非託管資源。而對於記憶體的釋放和回收,系統提供了GC-Garbage
Time of Update: 2018-12-05
第一篇:typedef struct與struct的區別1. 基本解釋typedef為C語言的關鍵字,作用是為一種資料類型定義一個新名字。這裡的資料類型包括內部資料類型(int,char等)和自訂的資料類型(struct等)。在編程中使用typedef目的一般有兩個,一個是給變數一個易記且意義明確的新名字,另一個是簡化一些比較複雜的型別宣告。至於typedef有什麼微妙之處,請你接著看下面對幾個問題的具體闡述。2. typedef &
Time of Update: 2018-12-05
/*********以下是轉載《16道嵌入式C語言面試題中的一題》***********/關鍵字volatile有什麼含意 並給出三個不同的例子。 一個定義為volatile的變數是說這變數可能會被意想不到地改變,這樣,編譯器就不會去 假設這個變數的值了。精確地說就是,最佳化器在用到這個變數時必須每次都小心地重新讀 取這個變數的值,而不是使用儲存在寄存器裡的備份。下面是volatile變數的幾個例子: 1). 平行裝置的硬體寄存器(如:狀態寄存器) 2).
Time of Update: 2018-12-05
這兩天用結構類比物件導向的方法在C語言中編寫硬體的驅動程式,涉及到多檔案的變數的初始化問題。如下: 在DS1302.h中定義了一個結構: typedef struct{ void (*fun1); void (*fun2); }DS1302_T; extern DS1302_T ds1302; 並聲明了一個全域變數以供main函數所在的main.c檔案調用,並在DS1032.c中定義該變數: DS1302_T ds1302; 隨後在DS1032
Time of Update: 2018-12-05
需要明確一下C#程式(或者說.NET)中的資源。簡單的說來,C#中的每一個類型都代表一種資源,而資源又分為兩類:託管資源:由CLR管理分配和釋放的資源,即由CLR裡new出來的對象;非託管資源:不受CLR管理的對象,windows核心對象,如檔案、資料庫連接、通訊端、COM對象等;毫無例外地,如果我們的類型使用到了非託管資源,或者需要顯式釋放的託管資源,那麼,就需要讓類型繼承介面IDisposable。這相當於是告訴調用者,該類型是需要顯式釋放資源的,你需要調用我的Dispose方法。不過,這一
Time of Update: 2018-12-05
首先,建立Windows應用程式,命名為:MovingWord,產生表單Form1(文字動畫),為該表單添加一個Label控制項和兩個按鈕控制項,一個時鐘控制項Timer,lable1控制項的text屬性設定為“愛你一萬”,具體如下:其次,為相應控制項添加相應的代碼,完整代碼如下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using
Time of Update: 2018-12-05
Item 6: Distinguish Between Value Types and Reference Types
Time of Update: 2018-12-05
邊讀邊學感覺很有收穫,寫一下概要翻譯和自己的體會。歡迎大家拍磚 Chapter 1 C# Language Element Item 1: Always Use Properties Instead of Accessible Data Members Item 2: Prefer readonly to const Item 3: Prefer the is or as Operators to Casts Item 4:
Time of Update: 2018-12-05
Item13: Initialize Static Class Members with Static Constructiors
Time of Update: 2018-12-05
使用 C# 2.0 的泛型,使得實現我所說的"單例提供者"成為可能。這是一個可用來建立單例類執行個體確不需要為每個特定的類重寫單例模式代碼的可重用的類。這樣分離出單例結構的代碼,將有利於保持按單例模式使用類或不按單例模式使用類的靈活性。 public sealed class Singleton{ Singleton() {} public static Singleton Instance { get { return SingletonCreator.instance; } }
Time of Update: 2018-12-05
C#互操作系列文章:C# 互通性入門系列(一):C#中互通性介紹C# 互通性入門系列(二):使用平台叫用調用Win32 函數C# 互通性入門系列(三):平台叫用中的資料封送處理C# 互通性入門系列(四):在C#中調用COM組件 本專題概要:引言平台叫用C++ Interop(互操作)COM Interop(互操作) 一、引言 這個系列是在C#基礎知識中遺留下來的一個系列的,因為在C#
Time of Update: 2018-12-05
C#基礎知識系列終於告了一個段落了, 本系列中主要和大家介紹了C#1.0到C# 4.0中一些重要的特性,剛開始寫這個專題的初衷主要是我覺得掌握了C#這些基礎知識之後,對於其他任何的一門語言都是差不多的,這樣可以提高朋友們對其他語言的掌握,以及可以讓大家更加迅速地掌握.NET的新特性,
Time of Update: 2018-12-05
引言: 前面專題主要介紹了C#1中的2個核心特性——委託和事件,然而在C#
Time of Update: 2018-12-05
文章目錄 ABCpdf簡介用法簡介 這幾天項目中需要將頁面導成PDF,剛開始使用iTextSharp,覺得在分頁處理上比較複雜,後來無意中看到了ABCpdf,使用非常簡單,並將一些常用操作記錄下來,平時可以瞅瞅,也分享給大傢伙們,廢話不多說,直接貼代碼。2013/7/6修改:昨天發了這篇博文之後,今天發現不在首頁顯示了,好生奇怪,原來部落格園發來了訊息,被過濾了,我這發的是個人分享我擦,不就是有個官網連結,並且代碼多一點嗎,給我封了幹嘛??
Time of Update: 2018-12-05
rainst大大論壇裡出的,初看很簡單,卻掉進陷阱,貼出來以備忘 1 class Program 2 { 3 static void Main(string[] args) 4 { 5 6 var t = new C(); 7 t.Say(); 8 (t as B).Say(); 9 (t as A).Say();10 Console.ReadLi