Lohnt es sich irgendwie einen eigenen Datentyp aus Integers zusammenzubasteln? Z.B. einen der sich alle Nachkommastellen einzeln merkt? Oder gibt es schon so eine Lösung?
Verwende decimal statt float/double.
Schau dir mal diesen Blog Post von Jon Skeet an: http://msmvps.com/blogs/jon_skeet/archive/2008/08/09/making-reflection-fly-and-exploring-delegates.aspx
Hast dus mal mit thread.Join() versucht?
Falls jemand an der Beta Version der Express Editionen interessiert ist, hier der Link: http://www.microsoft.com/express/future/
Nein, so etwas geht in C# nicht. Leider, wie ich sagen muss. Du könntest dir eventuell einmal Nemerle ansehen, das ist eine .NET Programiersprache die so etwas ermöglicht, und vom "look-and-feel" nicht weit von C# entfernt ist. Neben diesem Feature hat Nemerle auch noch tolle Features aus der Funktionalen Programmierung, wie zB Pattern Matching, Immutability Unterstüzung usw.
Also, meine Wunschliste sieht derzeit so aus:
1.) Mixins/Traits (also quasi Interfaces, mit dem Unterschied, dass ich Standardimplementierungen angeben kann). Daran wird laut einiger Blog-Posts und auch Videos auf Channel9 schon gearbeitet, also hoffe ich mal, dass sowas wirklich bald kommt.
2.) Operatorüberladung in Interfaces - wäre schon einige male praktisch gewesen. Normale statische Methoden will ich aber weiterhin nicht in Interfaces haben.
3.) Indexed Properties oder, wie mans auch nennen könnte, benannte Indexer. Das ist eine Sache, die ich schon oft praktisch gefunden hätte.
4.) Design by Contract wie in Spec#, inklusive eines Theorem Proofers, der die Contracts zur Compilezeit analysiert.
5.) Aufhebung der - meiner Meinung nach recht gekünstelten - Einschränkung, dass Contraints für Generics nicht von den Typen System.Enum, System.Delegate und System.MulticastDelegate sein dürfen.
So, das fällt mir auf die Schnelle ein. Ich weiß, recht viel, das würde sehr wahrscheinlich gar nicht alles in eine Version passen. Aber man wird ja wohl träumen dürfen 😉
1.) Benannte Indexer sind in C# nicht möglich.
2.) Die Parameterliste des Indexers gehört in eckige Klammern.
Eine Indexerdefinition sieht so aus:
public int this[int intParameter1, int intParameter2)
{
get
{
//Code
}
set
{
//Code
}
}
In deinem Fall würde ich das Array einfach über ein Property nach ausser sichtbar machen:
private string[,] resultBuffer = new string[10, 32];
public string[,] ResultBuffer
{
get
{
return resultBuffer;
}
set
{
resultBuffer= value;
}
}
@byte_schubser: Wahrscheinlich ist der Interpreter/Compiler in C# geschrieben?
Edit: @FlowPX: Wieso ein "Befehl" für Kommentare? Lauf Brainfuck ist alles Kommentar, was kein Brainfuck-Befehl ist.
Hallo!
Das von dir gewünscht Verhalten solltest du erreichen können, wenn du deine Klasse disassemblest und das Attribut beforefieldinit entfernst.
Ansonsten kannst du aber, wie ja auch schon erwähnt wurde, den statischen Konstruktur per Hand mittels System.Runtime.CompilerServices.RuntimeHelpers.RunClassConstructor aufrufen.
Das wird nicht gehen, du kannst keine Benutzerdefinierten Konvertierungen in eine oder von einer Basisklasse definieren.
Meiner Meinung nach ist dieser konkrete Fall einer der wenigen Fälle, in denen der Einsatz von new gerechtfertigt ist. Ich finde, das ist die schönste Lösung.