Generische Typen Instantiieren

Thomas Darimont

Erfahrenes Mitglied
Hallo,

hier mal ein kleines Beispiel wie man generische Typen ohne Reflection Instantiieren kann:
C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace De.Tutorials.Training
{
    public class GenericTypeInstantiationExample
    {
        public static void Main(string[] args)
        {
            object o = Create<Fubu>();
            Console.WriteLine(o);
        }

        private static object Create<T>() where T : class,new()
        {
            return new T();
        }
    }

    class Fubu
    {
        public Fubu()
        {

        }
    }
}

dazu sagen wir mit der Typ-Einschränkung auf den generischen Parameter T mit where T : class,new(), dass der verwendete Typ von T ein Referenztyp sein muss ( class -> diesem Typ kann man null zuweisen) und mit new() sagt man das ein parameterloser Konstruktor verfügbar sein muss.

Gruß Tom
 
Zurück