1
抽象類在某種程度上與接口類似,但是,它們大多隻是用在當只有少數方法由基類聲明由派生類實現時。
interface IMyInterface
{
void MethodToImplement();
}
以上代碼定義了接口 IMyInterface。通常接口命令以 I 字母開頭,這個接口只有一個方法 MethodToImplement(),沒有參數和返回值,當然我們可以安裝需求設置參數和返回值。
命名空間
namespace;
using System;
namespace first_space
{
class namespace_cl
{
public void func()
{
Console.WriteLine("Inside first_space");
}
}
}
{
class namespace_cl
{
public void func()
{
Console.WriteLine("Inside second_space");
}
}
}
class TestClass
{
static void Main(string[] args)
{
first_space.namespace_cl fc = new first_space.namespace_cl();
second_space.namespace_cl sc = new second_space.namespace_cl();
fc.func();
sc.func();
Console.ReadKey();
}
}
輸出
Inside first_space
Inside second_space
3
datelist[dataid]=(object)data
4
在 C# 中,預處理器指令用於在條件編譯中起作用。與 C 和 C++ 不同的是,它們不是用來創建宏。一個預處理器指令必須是該行上的唯一指令。
5
#define DEBUG
#define VC_V10
using System;
public class TestClass
{
public static void Main()
{
#if (DEBUG && !VC_V10)
Console.WriteLine ("DEBUG is defined");
#elif(!DEBUG && VC_V10)
Console.WriteLine("DEBUG is defined");
#endif
Console.ReadKey ();
}
}
6
public virtual void WriteByte(
byte value
)
將一個字節寫入流內的當前位置,並將流內的位置向前提升一個字節。
7
特性
是用於在運行時傳遞程序中各種元素(比如類、方法、結構、枚舉、組件等)的行爲信息的聲明性標籤
8
屬性
它們使用 訪問器(accessors) 讓私有域的值可被讀寫或操作。
public class Person
{
private string _name;
public string Name
{
get { return _name; } //可以通過 Person的實例來訪問Name,返回私有變量_name的值
private set { _name = value; }//不允許外部賦值,只能在Person內部賦值,value就是賦過來的值
}
}
例如 若無private
person.Name="abcd" value="abcd" _name="abcd"
9
索引器(Indexer) 允許一個對象可以像數組一樣被索引
element-type this[int index]
10
委託
是存有對某個方法的引用的一種引用類型變量。引用可在運行時被改變。
public delegate int MyDelegate (string s);
委託的多播
委託對象可使用 "+" 運算符進行合併。一個合併委託調用它所合併的兩個委託。只有相同類型的委託可被合併。"-" 運算符可用於從合併的委託中移除組件委託。
// 創建委託實例
NumberChanger nc;
NumberChanger nc1 = new NumberChanger(AddNum);
NumberChanger nc2 = new NumberChanger(MultNum);
nc = nc1;
nc += nc2; // 調用多播
nc(5);先將5帶入AddNum中 ,然後再帶入MultNum
11
擴展
http://www.cnblogs.com/lxblog/archive/2013/04/25/3041826.html
12
System.Action 無返回值
System.Func 有返回值