Ich steh grad auf dem Schlauch...
Ich habe eine Funktion RegisterDataTemplate(Type type, DataTemplate template), diese soll für einen bestimmten Datentyp "type" ein DataTemplate in meinem Template-Dictionary registrieren.
Nun möchte ich aber einschränken, dass nur solche Typen verwendet werden dürfen, die ein bestimmtes Interface implementieren.
Kann ich das schon in der Funktionsdefinition einschränken (ich meine das schonmal gesehen zu haben, bin mir aber nicht sicher,...
Zur Klarstellung nochmal: Ich möchte nicht haben RegisterDataTemplate(IMyInterface myObject, DataTemplate template)!!! Es geht nicht um ein bestimmtes Objekt, sondern den Typ eines Objekts. Also bräuchte ich eher sowas wie (Type type where type implements IMyInterface ..) in meinem Funktionsaufruf...
Kann mir jemand sagen ob das überhaupt geht und wenn ja wie (oder wo ich es nachlesen kann wie es geht), oder auch einfach ob es eben nicht geht...
Gruß & Danke
sth_Weird
Linux is for free...if your time is worth nothing
Fluchen ist die einzige Sprache, die jeder Programmierer perfekt beherrscht
++++++++++++++++++++~+
Hallo sth_Weird,
Du kannst das als Generic machen
RegisterDataTemplate<T>(DataTemplate template) where T : IMyInterface
{
Type type = typeof(T);
}
Lieben Gruß,
pdelvo
Pdelvo war schneller, wollte gerade das gleiche schreiben.
Sonst gibt es keine Alternative. Einfach den Type checken und eine ArgumentExeption kann aber auch eine gute Lösung sein, evtl. sogar beide Methoden.
ImageTools for Silverlight: http://imagetools.codeplex.com | http://www.silverdiagram.net | http://www.cleancodedeveloper.de b:::
Hallo zusammen,
als Zusatz dazu
Einschränkungen für Typparameter (C#-Programmierhandbuch)
Gruss
Coffeebean
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
das war's was ich gesucht hab...danke!
Linux is for free...if your time is worth nothing
Fluchen ist die einzige Sprache, die jeder Programmierer perfekt beherrscht
++++++++++++++++++++~+