原创 webbrowser屏蔽縮放、拖拽

webbrowser屏蔽 Ctrl縮放 187 -_ 229 =+ 109 - 107 + 106 * function document.onkeydown() { var k = win

原创 批量語音識別

總體思路 FFmpeg對音視頻進行處理獲取wav音頻文件,對音頻文件按時間切片(30秒),每個片段調用百度或科大訊飛API進行識別(這裏主要是用免費的那種),得到結果後再拼接,保存到.TXT中。 FFmpeg音視頻處理 使用FF

原创 Tip13 爲類型輸出格式化字符串

Tip13 爲類型輸出格式化字符串 有兩種方法爲類型提供格式化的字符串輸出: 1、讓類型繼承接口IFormattable。(需要預見類型在格式化方面的需求) 2、讓類型繼承接口IFormatProvider和ICustomF

原创 Tip12 重寫Equals時也要重寫GetHashCode

Tip12 重寫Equals時也要重寫GetHashCode 如果重寫Equals方法但不重寫GetHashCode方法,在使用如FCL中的Dictionary類時,可能隱含一些潛在的Bug。例如: class

原创 Tip8 避免給枚舉類型的元素提供顯示的值

Tip8 避免給枚舉類型的元素提供顯示的值 一般情況下,沒有必要給枚舉類型的元素提供顯式的值,因爲不正確地設定顯式的值會帶來意想不到的錯誤。例如: enum Week { Monday =

原创 k近鄰算法(KNN)

原文鏈接:http://blog.csdn.net/zouxy09/article/details/16955347 在原文的最終代碼上稍作修改,添加了中文註釋,運行環境爲3.6 一、kNN算法分析 K最近鄰(k-Nearest

原创 Tip10 創建對象時需要考慮是否實現比較器

Tip10 創建對象時需要考慮是否實現比較器 有對象的地方就會存在比較,在創建對象的時候需要考慮是否實現比較器(實現接口IComparable和IComparer) 下面舉個例子,根據排序的需要,列表要支持針對基本工資或獎金來

原创 Tip5 使用Int?來確保值類型也可用爲null

Tip5 使用Int?來確保值類型也可用爲null 基元類型爲什麼需要爲null?需要考慮以下兩個場景:   1、數據庫中一個int字段可以被設置爲null。在C#中,值被取出來後,爲了將它賦值給int類型,不得不首先判斷一下它

原创 Tip14 正確實現淺拷貝和深拷貝

Tip14 正確實現淺拷貝和深拷貝 淺拷貝:將對象中的所有字段複製到新的對象(副本)中。複製以後,若在副本中修改值類型的字段的值,不會影響到源對象對應的值,但修改引用類型的字段的值,會影響到源對象本身。 深拷貝:將對象中的所有

原创 Tip9 習慣重載運算符

Tip9 習慣重載運算符 在構建自己的類型時,應該考慮該類型是否可以用於運算符重載,使代碼看起來跟簡潔明瞭。例如: class Program { static void Main(string[

原创 Tip7 將0值作爲枚舉的默認值

Tip7 將0值作爲枚舉的默認值 允許使用的枚舉類型有byte、sbyte、short、ushort、int、uint、long、和ulong。應該始終將0值作爲枚舉類型的默認值,這樣做是有工程上的意義。例如:

原创 淺談機器學習

在本篇文章中,我將對機器學習做個概要的介紹。本文的目的是能讓即便完全不瞭解機器學習的人也能瞭解機器學習,並且上手相關的實踐。   在進入正題前,我想讀者心中可能會有一個疑惑:機器學習有什麼重要性,以至於要閱讀完這篇非常長的文章呢?

原创 Tip16 元素數量可變的情況下不應使用數組

Tip16 元素數量可變的情況下不應使用數組 數組一旦被創建,長度就不能改變。如果我們需要一個動態且可變長度的集合,就應該使用ArrayList或List<T>來創建。List<T>是ArrayList的泛型實現,它省去了拆箱和裝

原创 Tip15 使用dynamic來簡化反射實現

Tip15 使用dynamic來簡化反射實現 dynamic是Framework 4.0的新特性。dynamic的出現讓C#具有了弱語言的特性,編譯器默認dynamic對象支持開發者想要的任何特性。 var和dynamic完全是兩

原创 Tip3 區別對待強制轉型as和is

Tip3 區別對待強制轉型as和is 如果類型之間都上溯到了某個共同的基類,那麼根據此基類進行的轉型應該使用as。子類於子類之間的轉型,則應該提供轉型操作符,以便進行強制轉型 class FirstType {