原创 c#區分傳值調用 傳引用調用。

先來看一下百度百科是怎樣說的: 傳值調用是指方法在調用參數時,不是對原參數進行操作,而是創建參數的拷貝並對進行操作,這種調用有利於保護數據 傳引用調用是指傳遞一個地址的拷貝。 在c#中(以下內容轉自:http://www.cnblog

原创 sealed,new,virtual,abstract與override

1.sealed---“斷子絕孫” 密封類不能被繼承,不會有子類。密封方法可以重寫基類中的方法。 2.new---“你是你的,我是我的” new關鍵字用於顯式隱藏從基類繼承的成員,也就是說在使用派生類時調用的方法是new關鍵

原创 C#父類與子類(多態性)

對多態性概念還是有點模糊,突然好奇動手寫了一下代碼,感覺明白了。 using System; namespace 父類子類 { class Person { public Person()

原创 C#.Net DataSet和DataTable詳解

C#遍歷DataSet中數據的幾種方法總結 //多表多行多列的情況 foreach   (DataTable   dt   in   YourDataset.Tables)   //遍歷所有的datatable   {        

原创 private,protected,public和internal的區別

private是完全私有的,只有在類自己裏面可以調用,在類外部和子類都不能調用,子類也不能繼承父類的private屬性和方法protected雖然可以被外界看到,但外界卻不能調用,只有自己及自己的子類可以調用(屬性和方法都可以被子類所繼承

原创 C#Equals()和運算符==的區別

1.對於值類型 如果對象的值相等,則相等運算符==返回True,否則返回False 2.對於引用類型 equals方法比較的是兩個對象指向的內存空間內容是不是相同。也就是比較兩個引用類型是否是對同一個對象的引用,即兩個對象的內容是否相等

原创 C# const和readonly的區別

初始化賦值不同const修飾的常量必須在聲明的同時賦值,例如: public class Class1 { public const int MaxValue = 10;//正確聲明 pub

原创 WPF 創建右鍵菜單

主要用到ContextMenu類,對於任何的控件都可以進行對ContextMenu屬性的操作進行設置右鍵菜單的功能. xaml代碼如下: <Window x:Class="右鍵菜單.MainWindow" xmlns="h

原创 c#序列化及反序列化(三種方式)

一:BinaryFormatter序列化 序列化簡單點來理解就是把內存的東西寫到硬盤中,當然也可以寫到內存中(這個內容我會在後面寫一個例子).而反序列化就是從硬盤中把信息讀到內存中.就這麼簡單,呵呵,現在來看下面的例子吧! 在這篇文章

原创 c#好的程序員必須掌握的編碼習慣

1.一定要用大括號括住流程控制元素,如for,while,if,switch內嵌的代碼,即便只包含一行代碼。 2.如果語句中有else if,一定要有一個else跟着最後一個else if。 3.只要使用switch在所有case後面一定

原创 .Net常見面試題整理(二)——裝箱和拆箱

原文鏈接:http://www.cnblogs.com/zhangkai2237/archive/2013/03/21/2974570.html 上一節我們討論的是值類型和引用類型, 我們知道值類型是一種輕量級的數據結構, 對於一些簡

原创 .Net常見面試題整理(一)——值類型和引用類型

原文地址:http://www.cnblogs.com/zhangkai2237/archive/2013/03/17/2964528.html 類型一直是C#中最基本的問題,關於值類型和引用類型,我想每個C#程序員都知道“值類型保存在棧

原创 WinForm中獲取鼠標當前位置

Control.MousePosition 屬性,獲取鼠標光標的位置(以屏幕座標表示)   Control.PointToClient(Point p)方法,可將指定屏幕點的位置計算成工作區座標   Control.PointT

原创 C#指針- unsafe與fixed

c#在默認情況下生成的都是安全代碼,即進行了代碼託管(.NET的CLR機制好處之一是 ,進行代碼託管,適時的釋放內存,程序員便不必考慮資源 的回收問題),而此時,指針不能出現在安全代碼的編譯條件下。   一、unsafe  如果因需

原创 c#字符串常見操作

1.字符串轉爲比特碼: byte[] byteStr=System.Text.Encoding.Default.GetBytes(str); 2.字符串相加 StringBuilder sb=new StringBuilder();