程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> Visual C# 2010新特性之命名和可選參數與類型等價支持(3)

Visual C# 2010新特性之命名和可選參數與類型等價支持(3)

編輯:關於C語言

2.1. 首先創建一個強命名接口類庫(根據滿足條件設置屬性)

[ComImport]
[Guid("8DA56996-A151-4136-B474-32784559F6DF")]
public interface  ISampleInterface
{
  void GetUserInput();
  string UserInput { get; }
}

2.2. 創建強命名類庫,引用接口類庫並定義實現以上接口的類:

public classSampleClass: ISampleInterface
{
    private stringp_UserInput;
    public stringUserInput { get{ return p_UserInput; } }

    public voidGetUserInput()
    {
        Console.WriteLine("Please enter a value:");
        p_UserInput = Console.ReadLine();
    }
}

2.3. 創建客戶端應用程序,引用接口並使用反射的方法動態創建類型執行相應操作:

class Program
{
  static void Main(string[] args)
  {
     Assembly sampleAssembly = Assembly.Load("TypeEquivalenceRuntime");
     ISampleInterface sampleClass =
      (ISampleInterface) sampleAssembly.CreateInstance("TypeEquivalenceRuntime.SampleClass");
     sampleClass.GetUserInput();
    Console.WriteLine(sampleClass.UserInput);
     Console.WriteLine(sampleAssembly.GetName().Version.ToString());
    Console.ReadLine ();
  }
}

4. 修改實現了接口在的客戶端類,增加新的方法並修改程序集版本號和文件版本號為2.0.0.0:

public DateTime GetDate()
{
  return DateTime.Now;
}

5. 再次執行客戶端程序,觀察不同(客戶端將輸出新的版本號)。

在.NET全部使用托管代碼創建的程序集自動會識別更新,也就是說不需要使用額外的屬性定義,直接 創建接口、實現接口類庫和客戶端類(或者沒有接口直接創建類庫在客戶端引用),在類庫更新後復制到 客戶端引用的位置,客戶端會自動檢測到該更新,這也是.NET程序集為開發人員帶來的好處。但是使用類 型等價支持的作用體現在什麼地方,我認為還是方便了COM API的訪問,因為COM可能是使用其他語言編寫 的,沒有辦法做到像.Net程序集那樣自動感應版本變化,個人意見,期望高手解答。

3. 總結

Visual C#中提供了動態類型、命名參數、可選參數和類型等價支持,為編程帶來便利,對於訪問COM API來說更方便了。而且微軟多次提到了諸如Office之類的文字,是不是意味著微軟在不斷的鼓勵程序員 不斷開發出其於Office的一些應用,亦或是現在其於Office的應用在不斷增加,還是應用程序中與Office 的交互在不斷增加,通過增強的特性使這些工作更方便,來鞏固微軟件地位?一家之言,請高手不吝賜教 。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved