Freitag, 13. Juli 2007

Achtung! .NET 3.5 Beta1 und .NET 3.5 June CTP inkompatibel!

Achtung bei dem Ausprobieren von Programmen, die unter Orcas erstellt worden sind. Orcas installiert standardmäßig das .NET Framework 3.5 Beta1 vom April 2007. Wer sich bereits die neue Juni CTP runtergeladen hat, wird Programme die LINQ verwenden nicht ausführen können. Es erscheint folgende Fehlermeldung:

Der Typ System.Linq.Func`2 in der Assembly System.Core, Version 2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561924e089 konnte nicht geladen werden.

LINQ macht excessiven Gebrauch vom generischen Delegate Func<>. Dieser wurde nun in einen anderen Namespace verfrachtet. Statt bisher im Namespace System.Linq ist Func<> im Namespace System zu finden. Er ist somit überall verfügbar, ohne dass man einen bestimmten Namespace einbinden muss. Denn im Namespace System befinden sich alle Grundlegenden Datentypen.

Hinzugekommen sind nun auch diverse Überladungen des Action-Delegate. Es ist nämlich bisher nicht möglich einen Delegate Func zu erstellen. Jedoch kann man einen normalen Delegate delegate void Action(T obj) erstellen.

Hier nochmal die vorgefertigten Delegates in der Übersicht:

TReturn Func
TReturn Func
TReturn Func
TReturn Func
TReturn Func

void Action
void Action
void Action
void Action

Keine Kommentare: