2010-11-16 5 views
5

Ich war mit einigen Parsing einer Binärdatei rumgespielt, wenn ich über etwas kam ich habe mich gefragt.Warum ist die Stream.Position eine lange

Die Stream.Position Eigenschaft ist vom Typ Int64 oder long. Warum ist das? Sollte es nicht sinnvoller sein, einen UInt64 zu verwenden, da die Position in einem Stream nicht negativ sein kann?

Wer weiß, was ist die Verwendung dieses anstelle eines unsigned eine lange unterzeichnet werden?

+0

möglich Duplikat [Warum .NET Verwendung int statt uint in bestimmten Klassen?] (http://stackoverflow.com/questions/782629/why-does-net-use-int-instead-of-uint- in-bestimmttod Klassen) – dtb

+0

@dtb ya möchten [lesen Sie diese.] (http://blog.stackoverflow.com/2010/11/dr-strangedupe-or-how-i-learned-to-stop-worrying -und-liebe-duplikation /) – Will

+1

Dtb danke für diesen link hat es viel für mich geklärt. Ich habe es nicht in meinen Suchanfragen gefunden, weil ich dachte, es wäre etwas für die Stream-Klasse. Dachte nicht, dass andere Klassen das gleiche * Problem * hatten. –

Antwort

10

UInt64 is not CLS Compatible und alle Klassen in der BCL müssen (zumindest auf ihren öffentlichen/geschützten Sachen) ist

Die eigentliche Frage von couse, warum UInt64 nicht CLS kompatibel ist, und das war schon asked and answered :)

+0

Ah danke, das ist so verwirrend, obwohl oO –

+1

[Warum gehen wir nicht unsigned Typen im CLS haben] (http://blogs.msdn.com/b/brada/archive/2003/09/02/50285.aspx) – dtb

+0

Aah, eigentlich ist es ziemlich einfach ^^ Ich verstehe es sehr, vielen Dank. Hätte nie gedacht, dass es etwas mit dem CLS zu tun hat. –

Verwandte Themen