Tanz den => Lambda mit mir...

by Wolfgang Kluge Mai 07, 2009 17:55

Wer sich noch erfolgreich gegen die zugegebenermaßen ungewöhnlich anmutende Schreibweise der Lambda-Ausdrücke in .NET wehrt, dem kann nur gesagt werden: so schlimm wie es aussieht ist's bei weitem nicht! Und einmal verinnerlicht ist's wie Fahrradfahren. Warum man sich daran gewöhnen sollte? Weil man es kann ;)

Allgemein

Lambda(λ)-Ausdrücke gehören irgendwie zu den anonymen Methoden. Allerdings hat man sie nicht umsonst "Ausdruck" und nicht "Methode" genannt. Sie sind also nur ähnlich. Sie können sich aber exakt genauso verhalten wie anonyme Methoden. Dazu müssen sie lediglich einem delegate zugewiesen werden. Grob gesagt sind sie eine Weiterentwicklung der anonymen Methoden.

vollständigen Artikel anzeigen...

Tags:

C#

Die 2 Fragezeichen ?? ... und die null

by Wolfgang Kluge Mai 03, 2009 13:26

Nicht unbekannt - aber dennoch nicht gerade oft verwendet - fristet der c#-Operator ?? sein dasein. Zu Unrecht? Lässt sich doch mit diesem recht einfach testen, ob in einer Objektvariable ein Objekt oder null steht und entsprechend etwas anderes zurückgeben. In dem Beispiel

string test1 = null, test2 = "irgendwas";
Trace.WriteLine( test1 ?? "(null)" );
Trace.WriteLine( test2 ?? "(null)" );

wird - wie man sich bestimmt schon denken kann - zuerst "(null)" und dann "irgendwas" ausgegeben. Oder zu Deutsch: Es wird der linke Operand zurückgegeben, falls dieser nicht null ist, ansonsten wird der rechte Operand zurückgegeben.

Damit wird einem c#-Entwickler eine sehr einfache und leserliche Möglichkeit gegeben, auf null-Werte zu reagieren. Selbstverständlich kann man mit dieser Schreibweise auch "Schindluder" betreiben und den Code so unleserlich wie nur irgend möglich gestalten. Wenn man das aber nicht vorhat, warum dann nicht verwenden?

vollständigen Artikel anzeigen...

Tags:

C#

C# Datentypen

by Wolfgang Kluge April 30, 2009 19:30

Insgesamt 15 Datentypen können direkt mit C#-Keywords beschrieben werden. Diese Schlüsselwörter sind dabei "nur" Aliasnamen für entsprechende .NET-Framework-Datentypen.

Übersicht

Die meisten Datentypen sind Werttypen (siehe struct). Diese können den angegebenen Werte annehmen. Dagegen können Verweistypen wie string und object (und alle Klassen) zusätzlich den "Wert" null annehmen. Will man nun, dass auch ein Werttyp null annehmen kann, so kann man auf die Nullable-Typen zugreifen.

Keyword .NET-Datentyp Speicher Wertebereich Bemerkung
bool System.Boolean 8 bit
1 byte
true oder false (0xFF oder 0x00)  
byte System.Byte 8 bit
1 byte

0x0 bis 0xFF
0 bis 255

 
char System.Char 16 bit
2 byte
0x0 bis 0xFFFF (ein Unicode-Zeichen)
0 bis 65.535
einzelnes Unicode-Zeichen innerhalb einfachen Anführungsstrichen (')
decimal System.Boolean 128 bit
16 byte
(-7,9x1028 bis 7,9x1028) / 10x10(0 bis 28) Suffix M
double System.Double 64 bit
8 byte
-1,79769313486232x10308 bis 1,79769313486232x10308 Suffix D
float System.Single 32 bit
4 byte
-3,402823x1038 bis 3,402823x1038 Suffix F
int System.Int32 32 bit
4 byte

0x8000 0000 bis 0x7FFFFFFF
-2.147.483.648 bis 2.147.483.647

 
long System.Int64 64 bit
8 byte

0x8000 0000 0000 0000 bis 0x7FFF FFFF FFFF FFFF
-9.223.372.036.854.775.808 bis 9.223.372.036.854.775.807

Suffix L
object System.Object      
sbyte System.SByte 8 bit
1 byte

0x80 bis 0x7F
-128 bis 127

 
short System.Int16 16 bit
2 byte
0x8000 bis 0x7FFF
-32.768 bis 32.767
 
string System.String     Kein oder mehrere Unicode-Zeichen innerhalb doppelten Anführungsstrichen (") - oder null.
uint System.UInt32 32 bit
4 byte
0x0 bis 0xFFFF FFFF
0 bis 4.294.967.295
 
ulong System.UInt64 64 bit
8 byte
0x0 bis 0xFFFF FFFF FFFF FFFF
0 bis 18.446.744.073.709.551.615
Suffix UL (U, L)
ushort System.UInt16 16 bit
2 byte
0x0 bis 0xFFFF
0 bis 65.535
 

vollständigen Artikel anzeigen...

Tags: ,

C#

Powered by BlogEngine.NET 1.6.0.0
Theme by Mads Kristensen | Modified by Mooglegiant and me ;)

Übersetzen


Zu Technorati Favoriten hinzufügen