2014-02-20 41 views
-2

我試圖修改我的最終項目的Wiimote白板應用程序。但我在C#中的經驗很少。 我在EventArgs.cs中發現了這段代碼 我不清楚代碼在做什麼。無法閱讀此C#代碼

using System; 
using System.Collections.Generic; 
using System.Text; 

namespace WiimoteWhiteboard 
{ 
    //?? 
    public class EventArgs<T> : EventArgs 
    { 
     public T Value 
     { 
      get; 
      set; 
     } 

     public EventArgs(T value) 
      : base() 
     { 
      Value = value; 
     } 
    } 
} 
+4

這將是一個具有get/set屬性的Generic EventArguments類。這可能在Event回調中用作參數。 – Jite

+0

你在幾個月內學習'C#'?這就是爲什麼你不明白這個code.Give它整整一年,然後再讀一遍! –

+2

@AshishMishra對於它來說,沒有必要這麼做,通用類型一開始真的很難掌握,所以即使一年也可能是不夠的。 – Mateusz

回答

1
public class EventArgs<T> : EventArgs 

這是通用型類參數<T>這樣你就可以創建此類限制使用特定類型的對象。你可以使用這個類型作爲佔位符,所以你可以有整數或字符串,所以這個類可以在任何東西上運行。

{ 
    public T Value 

此處使用此泛型類型來指定Value屬性的類型。 如果您創建對象並傳遞泛型類型參數,則此值可以僅爲構建對象時傳遞的類型。 請注意,所有這些都是在編譯時完成的,因此它不是動態的,所有類型都必須在編譯時由編譯器解決。

{ 
     get; 
     set; 
    } 

    public EventArgs(T value) 

這裏是通用的構造函數,你只能與先前指定類型的值,在地方,你創建的對象與new運營商調用等等。

 : base() 
    { 
     Value = value; 
    } 
} 

吉特在評論中提到它可能被用作事件回調這是另一個故事,是不是回答你的問題的一部分參數。