ネタ元:Chapter2 ジェネリック(9/9) - @IT
今までリフレクションでやってたけど、こいつは便利だ。
using System; namespace GenericSample { class Program { static void Main(string[] args) { var h = new Foo<Bar>(); Console.WriteLine(h.Value); } } class Foo<T> where T : new() { public T Value = new T(); } class Bar { private readonly string Value; public Bar() { Value = "Bar"; } public override string ToString() { return Value; } } }
詳しくはMSDNで
http://msdn.microsoft.com/ja-jp/library/d5x73970.aspx
おまけ
Class Program
Shared Sub Main()
Dim h = New Foo(Of Bar)
Console.WriteLine(h.Value)
End Sub
End Class
Class Foo(Of T As New)
Public Value As T = New T()
End Class
Class Bar
Private ReadOnly Value As String
Public Sub New()
Value = "Bar"
End Sub
Public Overrides Function ToString() As String
Return Value
End Function
End Class