if you get mails with signatures like this:
if (argc > 1 && strcmp(argv[1], "-advice") == 0){ printf("Don't Panic!\n"); exit(42); }
Wie cool ist das? VB9 ist noch nicht aus der Tür und ich kann schon mit den ersten VBx (respektive VB10) Bits spielen :-)))))
Mehr gibt's übrigens diesen Mittwoch von 09:15-10:15 auf der Basta in Mainz zu sehen. Vielleicht sieht man sich ja?
Daniel
Der offizielle Download befindet sich auf http://download.microsoft.com/download/f/2/e/f2ecc2ad-c498-4538-8a2c-15eb157c00a7/SL_Map_FinalNET.png
Ok. Eigentlich wollte ich ja schon im Bett sein aber das ist dann doch zu arg ;-)
Noch cooler ist jedoch, dass obiger Code tatsächlich lauffähig ist und folgende Ausgabe erzeugt :-)))
Kudos an Kit George! In diesem Sinne…
Nachtrag (20070913_1135)P.S.: Den Quellcode gibt's übrigens auf http://blogs.msdn.com/vbteam/archive/2007/09/06/fun-with-vb.aspx
Anbei ein kleiner Trick in Vista. Drückt man Shift und klickt mit der rechten Maustaste auf einen Ordner im Windows Explorer so beinhaltet das Kontextmenü zwei zusätzliche Einträge:
Cool :-) Gute n8!
Mit Linq ist es sehr einfach komplexe Abfragen auf eine Liste von Objekten anzuwenden. Um einmal hinter die Kulissen zu schauen eignet sich die Property Log des DataContext die, wie in diesem Beispiel zu sehen, die SQL Query auf der Console ausgibt.
Dim db As New NWDataClassesDataContext
Dim result = From c In db.Customers _
Where c.City.StartsWith("M") _
Group c.City By key = c.City Into Group _
Select key, Group.Count
db.Log = Console.Out
For Each row In result
Console.WriteLine(row)
Next
db.Log = Console.Out erzeugt daraufhin die folgende Ausgabe:
Für C# gibt es außerdem einen "LINQ to SQL Debug Visualizer" der die erzeugte Query im Debugger anzeigen kann.
Happy Coding!
In der Septemberausgabe des MSDN Magazins findet sich eine ausgezeichnete Einführung zum Thema Lambda-Ausdrücke:
Sehr empfehlenswert ist auch der Artikel New "Orcas" Language Feature: Lambda Expressions auf Scott Guthries Blog.
Viel Spaß beim Lesen!
Eines der neuen Features von VB9 und C# 3.0 sind "Implicitly Typed Local Variables". Bei diesem Feature leitet sich der Typ einer Variablen bei der Deklaration aus dem zugewiesenen Ausdruck ab. Verdeutlichen soll dies ein kleines Beispiel:
In diesem Zusammenhang kommt immer wieder die Frage auf woher der Compiler „weiß“ um welchen Datentyp es sich handelt. Warum ist beispielsweise x in obigem Beispiel ein System.Int32 und kein System.Int16 oder System.Int64? Ein Blick in die Visual Basic Language Specification klärt diese Frage:
„The type of a literal is determined by its value or by the following type character. If no type character is specified, values in the range of the Integer type are typed as Integer; values outside the range for Integer are typed as Long. If an integer literal's type is of insufficient size to hold the integer literal, a compile-time error results.“
Mit Hilfe eines Suffixes kann ein Datentyp allerdings explizit definiert werden.
Dim x = 1S ' makes x a Short
Dim x = 1I ' makes x an Integer - the default for smaller integers
Dim x = 1L ' makes x a Long - the default for larger integers
Dim x = 1.0F ' makes x a float (Single)
Dim x = 1.0R ' makes x a real (Double)
Dim x = 1D ' makes x a Decimal
Dim x = "1"c ' makes x a Char (as opposed to string)
Dim x = #12/31/1905# ' makes x a Date
Schöne Grüße Daniel
P.S.: Timothy Ng hat zwei brilliante Artikel zum dem Thema "Type inference in Visual Basic" geschrieben (Type inference in Visual Basic (part 1) und Type inference in Visual Basic (part 2)).