Time of Update: 2018-12-05
這一章主要就是一個大體的介紹。有幾個概念需要注意下。1:CTS: Common Tpye System 一般型別系統..Net平台有多種語言,比如用VB.NET 寫了一個類,然後C#需要繼承這個類,這裡就涉及到了不同語言對於資料類型的定義。eg,VB寫的這個類,返回了Integer,這是VB裡的關鍵字,而C#裡顯然沒有這個東西,咋辦?幸好,CTS裡定義了一個 System.Int32,。這樣說吧,VB的 Integer映射到了這個 System.Int32,而C#裡的 int 也是映射到了
Time of Update: 2018-12-05
C#靜態方法使用經驗主要向你介紹了在使用C#靜態方法的過程中遇到的一點實際的問題,以及C#靜態方法使用的體會內容。 C#靜態方法有什麼弊端? 我們在實際的開發過程中會注意到C#靜態方法對於我們程式的影響,那麼有哪些C#靜態方法使用的體會呢?這裡我們來看看一些方面: C#靜態方法使用中遇到的問題: 在源碼工程中幾乎沒有看到什麼靜態方法,但是在Ms的SQLHelper中幾乎全部使用的是靜態方法,為什麼會這樣呢?我們來看看有以下的幾種可能:
Time of Update: 2018-12-05
MSDN建議按照下面的模式實現IDisposable介面:public class Foo : IDisposable{public void Dispose() { Dispose(true); GC.SuppressFinalize(this); }protected virtual void Dispose(bool disposing) {if (!m_disposed) {if (disposing) {
Time of Update: 2018-12-05
xml內容:<?xml version="1.0" encoding="utf-8" ?><google> <googleColorBorder>f6fbff</googleColorBorder> <googleColorBG>f6fbff</googleColorBG> <googleColorLink>666666</googleColorLink> <googleColorTex
Time of Update: 2018-12-05
概念:1.實值型別:資料存放區在記憶體的堆棧中,從堆棧中可以快速地訪問這些資料,因此,實值型別表示實際的資料。2.參考型別:表示指向儲存在記憶體堆中的資料的指標或引用(包括類、介面、數組和字串)。區別:基本區別在於它們在記憶體中的儲存方式。實值型別只將值存放在記憶體中,這些實值型別都儲存在堆棧中。未經處理資料類型(如bool和int)都屬於此類型。而參考型別的記憶體單元中只存放記憶體堆中對象的地址,而對象本身放在記憶體堆中。如果引用的實值型別的值是null,則表示未引用任何對象。下面我用兩個例子
Time of Update: 2018-12-05
最近由於在做聊天調度服務,情境是這樣的,叢集聊天伺服器,每台服務通過socket按照一定的頻率發送UDP資料包給調度伺服器,調度伺服器接收各台聊天伺服器發來的資料包,然後進行相應的資料分析,最後裁定目前最閒置聊天伺服器,以供聊天使用者即時快速串連最優伺服器,我考慮使用Dictionary資料結構來緩衝收集到的伺服器摘要資料,開發的過程中遇到幾個比較棘手的問題:1、收集的資料是通過多線程進行的,這樣造成Dictionary安全執行緒的問題。針對Dictionary安全執行緒的問題,我通過繼承IDi
Time of Update: 2018-12-05
.NET Framework 2.0SP1及以後版本提供了一組用於網路通訊的增強功能類庫,SocketAsyncEventArgs 就是其中最重要的一個,下面是MSDN對這組增強功能的類庫的介紹。 System.Net.Sockets.Socket 類有一組增強功能,提供可供專用的高效能通訊端應用程式使用的可選非同步模式,SocketAsyncEventArgs
Time of Update: 2018-12-05
Effective C# Item 23: Avoid Returning References to Internal Class Objects
Time of Update: 2018-12-05
Effective C# Item 21: Express Callbacks with Delegates 爸爸:“兒子,去把院子裡的草割一下。我看會兒報。” 兒子:“爸爸,我把院子打掃乾淨了。” 兒子:“爸爸,我給割草機加了油。” 兒子:“爸爸,割草機發動不了。” 爸爸:“我來發動它。” 兒子:“爸爸,我把草割好了。”
Time of Update: 2018-12-05
Effective C# Item 28: Avoid Conversion Operators
Time of Update: 2018-12-05
問題:運算子多載時如何區分prefix和postfix形式?(註:晚上看書才發現原來這是《More Effective C++》條款M6 果然不看書是不行的...) Answer:下面例子程式中 const Fraction operator ++(int) 中 int不過是個啞元(dummy),是永遠用不上的 它只是用來判斷++是prefix 還是 postfix 記住,如果有啞元,則是postfix,否則,就是prefix
Time of Update: 2018-12-05
主要C++流派,看看你是哪一流 ZThttp://blog.csdn.net/nightmare/archive/2006/11/01/1360928.aspx1. 經典C++流:類是核心,常式多用C Runtime的,很少用模版,一般是正統教育的結果。2. 古典C流:基本上當C用,偶爾用用對象,不使用異常,喜歡懷舊。3. MFC流:秉承MFC的風格,主要使用MFC/ATL對象和Win32 API,不喜歡STL,用很多的宏把IDE的文法提示模組折磨到崩潰。4. Portable流:以C
Time of Update: 2018-12-05
下面是我在練慣用C來編寫檔案的複製和剪下操作時的練習代碼。剪下的那部分代碼我用注釋的形式體現出來了,當然你也可以用一個if()判斷語句,筆者這裡就不一一操作了。CODE: 1 #include <stdio.h> 2 #include <string.h> 3 #define MAXFILELENG 1000000// 最長檔案字元數為百萬 4 5 int main() 6 { 7 FILE *fp; 8 fp = fopen("F:\copyform.
Time of Update: 2018-12-05
導讀本篇實現C/S架構的“計算機”,與大家分享。看了會網路編程,便不自覺YY了下:實現一個簡單的計算機,用戶端給出簡單的運算,服務端負責運算。這一小項目做起來很有意思,而且難度不大,所以推薦初學者試著去做做。下面分享在實現上述“計算機”的過程。簡單的基於tcp協議的 C/S編程都離不開這幾個函數:服務端:socket,bind,listen,accept,recv,send 用戶端:socket,connect,recv,send
Time of Update: 2018-12-05
導讀本篇文章對http://www.daoluan.net/?p=774中的“計算機”進行改進,與大家分享。上面那篇中的服務端屬重複型,即一個時刻只處理一客戶的請求,處理期間不搭理其他客戶。此篇對上篇的“計算機”進行小小的改進——能夠接受多個客戶的請求。改進細則:獨立bind,listen,accept,serve(即calc過程)功能模組;所有錯誤成功提示提取至各功能模組(函數)之外,錯誤/成功根據各函數的傳回值判斷(這更符合UNIX編程風範);客戶的服務過程由產生的子進程負責。缺陷:由子進程
Time of Update: 2018-12-05
引言: 在C# 2.0中泛型並不支援可變性的(可變性指的就是協變性和逆變性),我們知道在物件導向的繼承中就具有可變性,當方法聲明傳回型別為Stream,我們可以在實現中返回一個FileStream的類型,此時就存在一個隱式的轉化——從FileStream類型(子類引用)——>Stream類型(父類引用),並且參考型別的數組也存在這種從子類引用——>父類引用的轉化,例如string[] 可以轉化為object[](即這樣的代碼是可以通過編譯的:string[] strs =new
Time of Update: 2018-12-05
引言: C# 2.0 中還引入了可空類型,可空類型也是實值型別,只是可空類型是包括null的實值型別的,下面就介紹下C#2.0中對可空類型的支援具體有哪些內容(最近一直都在思考如何來分享這篇文章的,因為剛開始覺得可空類型使用過程中比較簡單,覺得沒有講的必要,但是考慮到這個系列的完整性,決定還是嘮叨下吧,希望對一些不熟悉的人有協助)。 一、為什麼會有可空類型 如果朋友們看了我之前的分享,對於這一部分都不會陌生,因為我一般介紹C#特性經常會以這樣的方式開頭的,
Time of Update: 2018-12-05
引言: 感覺好久沒有更新部落格了的,真是對不住大家了。在這個專題中將介紹匿名方法,匿名方法看名字也能明白,當然就是沒有名字的方法了(現實生活中也有很多這樣的匿名過程,如匿名投票,匿名舉報等等,相信微軟在命名方面肯定是根據了生活中例子的),然而匿名方法的理解卻不是僅僅是這一句話(這句話指的是沒有名字的方法),它還有很多內容,下面就具體介紹下匿名方法有哪些內容 一、匿名方法 之前一直認為匿名方法是在C# 3.0中提出的,之前之所以這麼認為主要是因為知道C#
Time of Update: 2018-12-05
1 /*============================= 2 類型 位元組 範圍 */ 3 char 1 -128到126 4 5 unsigned char 1 0到255 6 7 short 2 -32,768到32,767 8
Time of Update: 2018-12-05
關鍵字this有兩種基本的用法:一是用來進行this訪問.二是在聲明建構函式時指定需要先執行的建構函式。 this訪問在類的執行個體建構函式和執行個體函數成員中,關鍵字this表示當前的類執行個體或者對象的引用。this不能用在靜態建構函式和靜態函數成員中,也不能在其他地方使用。當在執行個體建構函式或方法內使用了與欄位名相同的變數名或參數名時,可以使用this來區別欄位和變數或者參數。下面的代碼示範了this的用法。public class Dog{ public string name;