首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 4.0 新特性總覽(二):dynamic 類型與命名可選參數

     編輯:關於C語言

dynamic 類型優勢

統一存取 COM、IronPython、HTML DOM、反射物件,無需關心具體來源,執行時由 DLR (動態語言運行時) 解析調用。

調用 IronPython 範例


ScriptRuntime py = Python.CreateRuntime();
dynamic helloworld = py.UseFile("helloworld.py");
Console.WriteLine("helloworld.py loaded!");

dynamic 實作基礎

繼承 DynamicObject 並覆寫 GetMember, Invoke, InvokeMember 等虛擬方法,即可自訂動態行為。


public abstract class DynamicObject : IDynamicObject
{
    public virtual object GetMember(GetMemberBinder info) { ... }
    public virtual object Invoke(InvokeBinder info, object[] args) { ... }
    // ... 其他虛擬方法
}

命名與可選參數

宣告可選參數


public StreamReader OpenTextFile(string path,
    Encoding encoding = null, bool detectEncoding = true, int bufferSize = 1024);

命名參數呼叫


OpenTextFile("foo.txt", Encoding.UTF8, bufferSize: 4096);
OpenTextFile(bufferSize: 4096, path: "foo.txt", detectEncoding: false); // 順序不拘

規則:命名參數必須位於位置參數之後;可跳過中間可選參數。

COM 互通改進 (延續下篇)

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved