Time of Update: 2017-02-16
原文地址:點擊開啟連結 這具有多方面的意義。例如,這意味著在基類中引入與衍生類別中的某個成員具有相同名稱的新成員在 C# 中是完全支援的,不會導致意外行為。 它還意味著類必須顯式聲明某方法是要重寫一個繼承方法,還是一個隱藏具有類似名稱的繼承方法的新方法。在 C# 中,衍生類別可以包含與基類方法同名的方法。基類方法必須定義為 virtual。如果衍生類別中的方法前面沒有 new 或 override 關鍵字,則編譯器將發出警告,該方法將有如存在 new
Time of Update: 2017-02-16
上一篇 背後的故事之 – 快樂的Lambda運算式(一)我們由淺入深的分析了一下Lambda運算式。知道了它和委託以及普通方法的區別,並且通過測試對比他們之間的效能,然後我們通過IL代碼深入瞭解了Lambda運算式,以及介紹了如何在.NET中用Lambda運算式來實現JavaScript中流行的一些模式。今天,我們接著來看Lambda運算式在.NET中還有哪些新鮮的玩法。
Time of Update: 2017-02-16
錯誤資訊如下:SqlCommand.DeriveParameters failed because the SqlCommand.CommandText property value is an invalid multipart name "SELECT * from tableA", the current limit of "4" is insufficient。錯誤原因:使用Enterprise Library進行資料庫操作時,如果直接使用sql
Time of Update: 2017-02-16
此處以表dt2中的keyIndex列(int類型)為例1、通過linq來實現int maxKeyIndex = dt2.AsEnumerable().Select(t => t.Field<int>("keyIndex")).Max();Linq文法:點擊開啟連結2、通過Compute方法來實現int ee = (int)dt2.Compute("Max(keyIndex)",
Time of Update: 2017-02-15
Windows使用一個系統:虛擬定址系統,該系統把程式可用的記憶體位址映射到硬體記憶體中的實際地址上,這些任務完全由Windows在後台管理。其實際結果是”位處理器上的每個進程都可以使用4GB的記憶體ˉ—無論電腦上實際有多少硬碟空間(在64位處理器上,這個數字會更大。這個4GB的記憶體實際上包含了程式的所有部分,包括可執行代碼、載入的所有DLL,以及程式運行時使用的所有變數的內容。這個4GB的記憶體稱為虛擬位址空間,或虛擬記憶體。4GB中的每個儲存單元都是從0開始往上排序的。要訪問儲存在記憶體的
Time of Update: 2017-02-15
1、在VS(此處目錄檔案以vs2010為例)安裝目錄下(“%Visual
Time of Update: 2017-02-15
/// <summary> /// 將對象轉換為 JSON 字串 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="input"></param> /// <returns></returns>
Time of Update: 2017-02-15
原文地址:點擊開啟連結適用:普通的對象,並且有預設的無參數建構函式 #region 將一個對象轉換為指定類型 /// <summary> /// 將一個對象轉換為指定類型 /// </summary> /// <param name="obj">待轉換的對象</param> /// <param
Time of Update: 2017-02-15
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Runtime.Serialization;using System.IO;using System.Xml;namespace Common.Utility.XMLSerialization{ /// <summary> /// DataContractSerializer /
Time of Update: 2017-02-15
原文地址:點擊開啟連結 DataContractSerializer 類 使用提供的資料合約,將類型執行個體序列化和還原序列化為 XML 流或文檔。 無法繼承此類。 命名空間: System.Runtime.Serialization 程式集: System.Runtime.Serialization(在 System.Runtime.Serialization.dll 中)備忘 使用 DataContractSerializer
Time of Update: 2017-02-15
#region 引用對象比較 /// <summary> /// 引用對象比較 /// </summary> /// <param name="objA"></param> /// <param name="objB"></param> ///
Time of Update: 2017-02-13
1、catch throw的幾種形式及效能影響: private void Form1_Click(object sender, EventArgs e) { try { } catch { throw; } } private void Form1_Load(object sender,
Time of Update: 2017-02-13
C# 效能最佳化細節1、使用string.Empty給一個Null 字元串變數賦初始值String.Empty是一個指代,而””是具體的實現string filter=“”;//不建議 string filter=string.Empty; //建議2、使用str.Length == 0做空串比較最快的方法:if (str.Length == 0)其次:if (str == String.Empty)或 if (str ==
Time of Update: 2017-02-13
C# 效能最佳化細節1、使用ItemArray實現對DataRow的批量賦值在對DataRow的所有欄位賦值時,使用欄位名進行逐列賦值效率較低。這時應盡量使用批量欄位賦值。可以使用ItemArray或rows.Add方法:/ ds是資料集(DataSet)對象DataTable dt = ds.Tables[0];DataRow row = dt.NewRow();row.ItemArray = new object[] { value1, value2, …, valuen };//
Time of Update: 2017-02-13
/// <summary> /// 檔案流壓縮解壓 /// </summary> public class ZipHelper { public static int BEST_COMPRESSION = 9; public static int BEST_SPEED = 1; public static int DEFAULT_COMPRESSION = -1; public static
Time of Update: 2017-02-13
源碼位置:protobuf-net1、安裝Nuget :工具--拓展管理器安裝完成後重啟Microsoft Visual Studio 2010,可以看到:小註:只有該解決方案已經開啟項目的時候,才會看到下面兩項:2、安裝protobuf_net(在Nuget中找到protobuf-net,安裝,選擇項目搞定)3、封裝簡單操作類(在項目中引入using ProtoBuf;就可以直接用了) /// <summary> /// Protobuf_net /// <
Time of Update: 2017-02-13
原文地址:點擊開啟連結今天在園子首頁看到一篇博文-簡單聊下Unicode和UTF-8,從中知道了UTF-8是Unicode的一種實現方式:Unicode只是給這世界上每個字元規定了一個統一的二進位編號,並沒有規定程式該如何去儲存和解析。可以說UTF-8是Unicode實現方式之一...在快閃記憶體中記錄這個收穫時,@飛鳥_Asuka在回複中提了一個很好的問題:“那麼在選擇編碼方式的時候為什麼unicode和utf8會是分別的兩個選項呢?”在C#中,System.Text.Encoding.Uni
Time of Update: 2017-02-13
C# 清除事件綁定的函數 #region 清除事件綁定的函數 /// <summary> /// 清除事件綁定的函數 /// </summary> /// <param name="objectHasEvents">擁有事件的執行個體</param> /// <param name="eventName">事件名稱</
Time of Update: 2017-02-13
保證一個類僅有一個執行個體,並提供一個該執行個體的全域訪問點。——《設計模式》單例模式的概念很簡單,下面以C#語言為例子,列出常見單例寫法的優缺點。1、簡單實現 public sealed class Singleton { static Singleton instance = null; public void Show() { Console.WriteLine( "instance
Time of Update: 2017-02-13
許多應用程式中,綁定了一群組類型(Type)或者類型成員(從MemberInfo派生),並將這些對象儲存在某種形式的一個集合中。以後,會搜尋這個集合,尋找特定的對象,然後調用這個對象。這是一個很好的機制,但是有個小問題:Type和MemberInfo派生的對象需要大量的記憶體。如果一個應用程式容納了太多這樣的類,但只是偶爾用一下它們,應用程式的記憶體就會急劇增長,對應用程式的效能產生影響。在內部,CLR用一種更精簡的形式來表示這種資訊。CLR之所以為應用程式建立這些對象,只是為了簡化開發人員的工