2010-11-16 16 views
5

Mam do czynienia z jakimś parsowaniem pliku binarnego, kiedy natrafiłem na coś, o co się zastanawiałem.Dlaczego Stream.Position jest długi?

Właściwość Stream.Position jest typu Int64 lub long. Dlaczego to? Czy nie powinno być więcej sensu korzystanie z UInt64, ponieważ pozycja w strumieniu nie może być ujemna?

Ktoś wie, jaki jest pożytek z tego, że jest to sygnatura długa zamiast niepodpisanej?

+0

możliwy duplikat [Dlaczego .NET używa int zamiast uint w niektórych klasach?] (Http://stackoverflow.com/questions/782629/why-does-net-use-int-instead-of-uint- w pewnych klasach) – dtb

+0

@ dtb ya może chcieć [przeczytać to.] (http://blog.stackoverflow.com/2010/11/dr-strangedupe-or-how-i-learned-to-stop- stilling i-love-duplikacja /) – Will

+1

Dtb dzięki za ten link to wyczyściło wiele dla mnie. Nie znalazłem tego w moich wyszukiwaniach, ponieważ uważałem, że jest to specyficzne dla klasy Stream. Nie sądziłem, że inne klasy mają ten sam * problem *. –

Odpowiedz

10

UInt64 is not CLS Compatible, a wszystkie zajęcia w plc trzeba być (przynajmniej w ich publicznym/protected rzeczy)

Prawdziwe pytanie brzmi, dlaczego UInt64 z masażem leczniczym nie jest CLS kompatybilny, a to było już asked and answered :)

+0

Ah dzięki, to jest tak mylące, chociaż oO –

+1

[Dlaczego nie mamy typów bez znaku w CLS] (http://blogs.msdn.com/b/brada/archive/2003/09/02/50285.aspx) – dtb

+0

Aah, właściwie to całkiem łatwe^^ Rozumiem to bardzo dziękuję. Nigdy nie myślałem, że to miałoby coś wspólnego z CLS. –

Powiązane problemy