Time of Update: 2018-12-07
對於 C# 3.0 中的另一種擴充文法就是 Extension Method ,這個顧名思義,便是用來擴充的,擴充也就是對現有類型加入自訂的方法,所以名字就是 Extension Method 了,事實上呢,這種文法的使用還是蠻簡單的,等下看一個執行個體便一清二楚了,不過還是要注意幾個地方,那就是在 Extension Method 中 this 的使用,以及要定義為 Static 的方法,還是先看一個 Demo 吧, 用來定義擴充的類的代碼吧using System; namespace
Time of Update: 2018-12-07
上一篇簡單介紹了Slope One演算法的概念, 這次介紹C#實現使用基於Slope One演算法的推薦需要以下資料: 1. 有一組使用者2. 有一組Items(文章, 商品等)3. 使用者會對其中某些項目打分(Rating)表達他們的喜好Slope One演算法要解決的問題是, 對某個使用者, 已知道他對其中一些Item的Rating了, 向他推薦一些他還沒有Rating的Items, 以增加銷售機會. 一個推薦系統的實現包括以下三步:1. 計算出任意兩個Item之間Rating的差值2.
Time of Update: 2018-12-07
基於C#的介面基礎教程 C#中不僅支援.Net 平台,而且支援COM平台。為了支援 COM和.Net,C# 包含一種稱為屬性的獨特語言特性。一個屬性實際上就是一個 C# 類,它通過修飾原始碼來提供元資訊。屬性使 C# 能夠支援特定的技術,如 COM 和 .Net,而不會干擾語言規範本身。C# 提供將COM介面轉換為 C#介面的屬性類。另一些屬性類將 COM類轉換為C# 類。執行這些轉換不需要任何 IDL 或類工廠。 現在部署的任何COM
Time of Update: 2018-12-07
本文利用C#和.NET提供的類來輕鬆建立一個抓取網頁內容來源代碼的程式 。HTTP是WWW進行資料訪問最基本的協議之一,在.NET的基本類型庫類中提供了兩個對象類:HTTPWebRequest和HTTPWebResponse,分別用來向某資源發送請求和獲得響應。為了得到一個資源的內容,我們先指定一個想要抓取的URL地址,用HTTPWebRequest對象進行請求,用HTTPWebResponse對象接收響應的結果,最後用TextStream對象來提取我們想要的資訊,並在控制台列印出來。
Time of Update: 2018-12-07
using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using com.prm.client.tools; using System.Data.OracleClient; //using com.prm.client.common; namespace com.prm.client.forms { ///
Time of Update: 2018-12-07
本文:手頭上的一個項目報表相對比較簡單,所以報表列印採用VBA引擎,通過定製Word模版,然後根據模版需要填充資料,然後OK,列印即可。實現方法:首先需要引用VBA組建,我用的是Office2003 Professional,Dll版本號碼為Microsoft Word11.0, 另外當然還需要引用Interop.Word.Dll.代碼如下:#region 開啟Word文檔,並且返回對象wDoc,wDoc /// <summary> ///
Time of Update: 2018-12-07
本文:擷取資料庫中的所有表
Time of Update: 2018-12-07
1、只有在定義之後,類才可以用作多重繼承的基類。按照基類建構函式在衍生的資料行表中的出現次序調用。2、多重繼承中,衍生類別的指標或引用可以轉換為任意基類的指標或引用。3、當一個類繼承於多個基類的時候,那些基類之間沒有隱含的關係,不允許使用一個基類的指標訪問其它基類的成員。4、在虛繼承下,對給定虛基類,無論該類在派生層次中作為虛基類出現多少次,只繼承一個共用的基類子物件。5、特定衍生類別執行個體的優先順序高於共用虛基類執行個體。6、在虛派生中,由最低層衍生類別的建構函式初始化虛基類。7、無論虛基類
Time of Update: 2018-12-07
9、正如定位new(placement new expression)運算式是使用allocator類的construct成員的低級選擇,可以使用解構函式的顯式調用作為調用destroy函數的低級選擇。範例程式碼for (T *p = first_free; p != elements; /*empty*/)alloc.destroy(--p);//上式表達與下式表達等價p->~T();10、顯式調用解構函式是清除對象本身,並沒有釋放對象所佔的記憶體;調用operator
Time of Update: 2018-12-07
研究Int32&的時候,無意中發現C#裡面還有4個Undocument Keyword, 分別是__makeref, __reftype, __refvalue 以及__arglist。 其中前三個keyword可以這樣用:
Time of Update: 2018-12-07
1、map 和 set 容器中,一個鍵只能對應一個執行個體。multimap和multiset類型允許一個鍵對應多個執行個體。其支援的操作分別與map和set的操作相同,只有一個例外,multimap不支援下標運算。set與multiset專門用於儲存鍵。2、關聯容器 map 和 set 的元素是按順序儲存的。而 multimap 和multset 也一樣。因此,在 multimap 和 multiset 容器中,如果某個鍵對應多個執行個體,則這些執行個體在容器中將相鄰存放。迭代遍曆
Time of Update: 2018-12-07
早在 C# 2.0 中,便出現了 Partial ,不過那是的 Partial 只能使用在類上,也就是部分類別,對於部分類別,實用之處還是比較多的,因為 Partial Method 是建立在 Partial Class 的基礎之上的,所以在這裡先介紹一下 Partial Class 的使用,然後再一併介紹 Partial Method ,對於 Partial Class ,其實也就是將一個類拆分成幾個部分類別,並且這些部分類別可以寫在不同的類檔案 .cs 中,比如在一個.cs 中寫完這個
Time of Update: 2018-12-07
C語言的readlinkread value of a symbolic link。ssize_t readlink(const char *path, char *buf, size_t bufsiz);readlink() places the contents of the symbolic link path in the buffer buf, which has size bufsiz. readlink() does not append a null byte to buf.
Time of Update: 2018-12-07
TCP協議是一個基本的網路通訊協定,基本上所有的網路服務都是基於TCP協議的,如HTTP,FTP等等,所以要瞭解網路編程就必須瞭解基於TCP協議的編程。然而TCP協議是一個龐雜的體系,要徹底的弄清楚它的實現不是一天兩天的功夫,所幸的是在.net
Time of Update: 2018-12-07
Heavenkiller(原創) 首先我們給樹下一個定義:樹是一個有限的、非空的結點集,T={r} or T1 or T2 or…or
Time of Update: 2018-12-07
using System;using System.Net;using System.Net.Sockets; namespace GetIpByDomain{ /// <summary> /// Class1 的摘要說明。 /// </summary> class Class1 { /// <summary> /// 應用程式的主進入點。 /// </summary> [STAThread] static void
Time of Update: 2018-12-07
使用C#調用外部Ping命令擷取網路連接情況 以前在玩Windows 98的時候,幾台電腦連起來,需要測試網路連接是否正常,經常用的一個命令就是Ping.exe。感覺相當實用。 現在 .net為我們提供了強大的功能來調用外部工具,並通過重新導向輸入、輸出擷取執行結果,下面就用一個例子來說明調用Ping.exe命令實現網路的檢測,希望對.net初學者有所協助。 首先,我們用使用Process類,來建立獨立的進程,匯入System.Diagnostics, using
Time of Update: 2018-12-07
有如下結構的代碼: 其中Parent的ApplyEditable是一個Virtual方法,Child要對其進行各自不同的實現,即重寫ApplyEditable方法。上述代碼中,很明顯ParentA和ParentB有重複代碼。但是由於C#不支援多繼承,所以無法使用多繼承的方式把這些重複代碼封裝起來。我們只有走變通的道路:經過我的實踐,使用混合+介面的方式。可以比較好的實現多繼承。我們還是直接來看圖:
Time of Update: 2018-12-07
今天回答別人問題的時候,才發現原先的T.default文法被取消了,使用了新的default關鍵字來實現這一功能。還好回複前動手試了一下,不然就...-_-b下面詳細說明一下。之所以會用到default關鍵字,是因為需要在不知道型別參數為實值型別還是參考型別的情況下,為對象執行個體賦初值。考慮以下代碼:class TestDefault<T> { public T foo() { T t = null; //???
Time of Update: 2018-12-07
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