ネタ元: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