2010-11-16 29 views
5

Tôi đang rối tung xung quanh với một số phân tích cú pháp của tệp nhị phân khi tôi bắt gặp một thứ mà tôi đang thắc mắc.Tại sao Stream.Position lại dài

Thuộc tính Stream.Position thuộc loại Int64 hoặc long. Tại sao điều này? Không nên sử dụng số UInt64 có ý nghĩa hơn vì vị trí trong luồng không được âm?

Bất kỳ ai biết việc sử dụng cụm từ này là ký hiệu dài thay vì chữ ký chưa được ký là gì?

+0

bản sao có thể có của [Tại sao .NET sử dụng int thay vì uint trong các lớp nhất định?] (Http://stackoverflow.com/questions/782629/why-does-net-use-int-instead-of-uint- trong một số lớp học) – dtb

+0

@ dtb ya có thể muốn [đọc này.] (http://blog.stackoverflow.com/2010/11/dr-strangedupe-or-how-i-learned-to-stop-worrying -and-love-duplication /) – Will

+1

Dtb cảm ơn vì liên kết đó đã xóa rất nhiều cho tôi. Tôi đã không tìm thấy nó trong tìm kiếm của tôi bởi vì tôi nghĩ rằng nó là một cái gì đó cụ thể cho các lớp học Stream. Không nghĩ các lớp khác cũng có cùng một vấn đề *. –

Trả lời

10

UInt64 is not CLS Compatible, và mọi tầng lớp trong BCL cần phải được (ít nhất là trên các công cụ công/bảo vệ họ)

Câu hỏi thực sự là của couse tại sao UInt64 không CLS tương thích, và điều đó đã là asked and answered :)

+0

Ah cảm ơn, điều đó rất khó hiểu mặc dù oO –

+1

[Tại sao chúng tôi không có các loại chưa ký trong CLS] (http://blogs.msdn.com/b/brada/archive/2003/09/02/50285.aspx) – dtb

+0

Aah, thực sự nó khá dễ dàng ^^ Tôi hiểu nó cảm ơn rất nhiều. Không bao giờ nghĩ rằng nó sẽ có bất cứ điều gì để làm với CLS. –

Các vấn đề liên quan