Time of Update: 2018-12-05
說的是C#如何體貼程式員,而非.NET Framework。 如果打算寫一個類似System.Linq.Enumerable.Where的extention method,假設命名為Filter,下面是C#為滿足此需求下的功夫: public static IEnumerable<T> Filter<T>(this IEnumerable<T> source, Func<T, bool> predicate) {
Time of Update: 2018-12-05
說的是C#如何體貼程式員,而非.NET Framework。 這是C#對Delegate相關領域下的精微功夫: List<Product> products = Product.GetSampleProducts();foreach (Product product in products.OrderBy(p => p.Name)) //entention method{ Console.WriteLine
Time of Update: 2018-12-05
本系列專題前兩篇分別探討了常見的幾種圖形處理演算法和效能已經圖形的灰階處理、逆反處理和二值化處理,本文介紹霧化處理。 先,先不談演算法,其實很多東西來源於現實的。 設想你有塊透明的玻璃,朝上面哈幾口氣,然後將玻璃放到一張圖片上,看看有啥效果?應該和差不多的霧化效果吧。下面來分析原理從而推匯出演算法。 玻璃上面哈氣後,有很多小水滴小水汽之類的,形狀不規則,因此發生光折射,由於水滴的不規則性,發生折射也是不規則的,也就是折射光的折射角不確定,但是肯定有個範圍,假設有像素A(i,j),(i和j分
Time of Update: 2018-12-05
霓虹處理與浮雕處理演算法有共同之處,都是像素及鄰近像素直接關係運算,因此放到一起寫。霓虹處理 關於霓虹燈的效果,不知道的可以baidu圖片裡面看看。霓虹處理演算法:同樣以3*3的點陣為例,目標像素g(i,j)應當以f(i,j)與f(i,j+1),f(i,j)與f(i+1,j)的梯度作為R,G,B分量,我們不妨設f(i,j)的RGB分量為(r1, g1, b1), f(i,j+1)為(r2, g2, b2), f(i+1,j)為(r3, g3, b3), g(i, j)為(r,
Time of Update: 2018-12-05
//一、安裝服務:private void InstallService(IDictionary stateSaver, string filepath) { try { System.ServiceProcess.ServiceController service = new System.ServiceProcess.ServiceController("ServiceName");
Time of Update: 2018-12-05
從面對《Modern C++ Design》中backEnds.template的用法一無所知開始,要徹底搞清楚C++的模板是如果工作的決心其實已經埋下了。更何況今天在實現B樹的時候反覆被模板的編譯問題折磨著。更加堅定了看完這本《C++ Template. The Complete
Time of Update: 2018-12-05
互斥進程(程式), 簡單點說,就是在系統中只能有該程式的一個執行個體運行. 現在很多軟體都有這功能,如Maxthon 可以設定為"只允許開啟一個表單",還有Bitcomet等. 我也是看到這些軟體的這個功能才來研究這個問題的. 要實現程式的互斥,通常有三中方式,下面用 C# 語言來實現: 實現方式一: 使用線程互斥變數. 通過定義互斥變數來判斷是否已運行執行個體.C#實現如下: 把program.cs檔案裡的Main()函數改為如下代碼: static void
Time of Update: 2018-12-05
private void getxx(){RegistryKey start = Registry.LocalMachine; RegistryKey cardServiceName, networkKey; string networkcardKey ="SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\NetworkCards"; string serviceKey = "SYSTEM\\CurrentControlSet\\Services\
Time of Update: 2018-12-05
using System.Runtime.InteropServices;引入鍵盤事件函數[DllImport("user32.dll")]public static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo); 參數: bVk:定義一個虛擬鍵碼。鍵碼值必須在1~254之間。 bScan:定義該鍵的硬體掃描碼。
Time of Update: 2018-12-05
在利用Socket 進行Tcp/Ip 編程的時候,免不了要進行資料的發送和接收,而資料的接收,用得最多的就是 Socket 的同步函數 Receive (或它的重載):public int Receive ( byte[] buffer, int offset, int size, SocketFlags socketFlags)或者是非同步函數 BeginReceive( 或它的重載): public IAsyncResult BeginReceive (
Time of Update: 2018-12-05
C#中對DatagridView的部分常用操作從 部落格園首頁 作者:@秋dbfC#DataGridView中的常用技巧 只列出技巧部分,後面會有補充0(最基本的技巧). 擷取某列中的某行(某儲存格)中的內容this.currentposition = this.dataGridView1.BindingContext[this.dataGridView1.DataSource, this.dataGridView1.DataMember].Position;bookContent =
Time of Update: 2018-12-05
一.擷取當前函數名:class Program { static void Main(string[] args) { Console.WriteLine(test()); } static string Test() { var st = new System.Diagnostics.StackTrace(); return st.GetFrame(0).ToString(); }} 結果:Test at
Time of Update: 2018-12-05
lock只能使用參考型別,嚴格來說是需要對象的執行個體。即使對象在意義上是相同的,但是如果不是ReferenceEquals的話,那麼將作為兩個執行個體來對待,那麼C# lock 的就不是同一個東西。也就是說,當你以為這個 lock 生效的話,它其實在做無用工。測試案例:01 using System; 02 using System.Threading; 03 04 class TTT 05 { 06 private hello test; 07 08
Time of Update: 2018-12-05
Regex(Regular expressions)是一套文法匹配規則,各種語言,如Perl, .Net和Java都有其對應的共用的Regex類庫。在.Net中,這個類庫叫做Regex。簡單的說,Regex是從字元窗中尋找匹配字串的應用類。通過Regex,編程人員能夠非常方便的從一段資料中提取自己所需要的資料資訊。舉一個簡單的例子,讓大家對Regex有個大概的瞭解:Regex regex = new Regex(@"d+"); Match m = regex.Match("fox
Time of Update: 2018-12-05
TransactionScope類是framework2.0 新增的一個類,在System.Transactions命名空間中,使用時必須先添加System.Transactions引用;另外還要在windows控制面版-->管理工具-->服務-->Distributed Transaction Coordinator-->屬性-->啟動,啟動這個服務.範例程式碼如下: try { using
Time of Update: 2018-12-05
一、常值內容的操作下面的代碼示範了如何將常值內容複製到剪貼簿:Cstring source;//常值內容儲存在source變數中if(openClipboard()){HGLOBAL clipbuffer;char * buffer;EmptyClipboard();clipbuffer = GlobalAlloc(GMEM_DDESHARE, dource.GetLength()+1);buffer = (char*)GlobalLock(clipbuffer);Strcpy(buffer,
Time of Update: 2018-12-05
1. C和C++的主要區別2. 多態和重載3. 多態如何?4. 設計模式5. 同一個類不同對象之間的通訊6. 友元函數7. 全域變數的生存期8. 全域和靜態區別9. 進程和進程之間的通訊10. DDE11. DDL12. Socket13. 結構和類的區別14. 自訂訊息的步驟15. 資料庫引擎16.
Time of Update: 2018-12-05
再重新整理一下:對於初學者:建議看:1 essential c++(lippman)2 c++ primer中級者可看:1.Inside C++ Object Module2.Effective C++3.More Effective C++4.C++ programming Language.5.ExceptionalCpp_47EngineeringPuzzlesProgrammingProblemsSolutions6.More Exceptional
Time of Update: 2018-12-05
1 函數模板 主要講述了函數模板的使用: template<typename T> 函數模板的重載機制2 類模板 template<typename T>在類模板中,注意下面的細節:stack< stack<int> > mystackstack;紅色的空格必須,因為沒有這個空格,將會和>>混淆了。3。非型別模板參數:template<typename t, int MaxSize>class stack{
Time of Update: 2018-12-05
通常,從一個基礎類繼承來得衍生類別包含了基類的公有和私人資料成員,私人成員在衍生類別構造的對象中存在但是不可用,如果重寫了基類的同名函數,那麼當用基類的指標調用衍生類別的成員時候,將會調用基類的方法,這樣就實現不了多態這樣的技術,c++是通過virtual機制來實現的,這個機制是在物件建構的時候多出一張vtbl,存放這些虛函數的地址,當發現指標指向的是衍生類別的成員時候,自動轉向衍生類別的函數調用。