2010-02-02 23 views
21

Tôi đã đọc nhiều câu hỏi và câu trả lời cho số non-nullable. Có vẻ như cách tốt nhất để tiếp cận các loại không thể vô hiệu hóa trong C# (4.0) là hack của Jon Skeet NonNullable<>.Làm thế nào tôi có thể nhận được gần các loại tham chiếu không nullable trong C# ngày hôm nay?

Tuy nhiên, có vẻ như C++/CLI đã giải quyết được nhiều vấn đề bằng cách hỗ trợ các tham chiếu được quản lý: Foo% (thay vì bản gốc C++ Foo&). Trình biên dịch làm cho công việc này bằng cách thêm modreq(IsImplicitlyDereferenced) vào đối số. Đang cố gắng để gọi một chức năng như vậy từ C# kết quả trong:

'<FunctionName>' is not supported by the language 

Có điều gì tốt hơn sau đó NonNullable <>?

Có cách nào để (hợp lý - tức là, w/o sử dụng phản chiếu) gọi phương thức C++/CLI Foo::Method(Bar%) từ C#?


[sửa] Có vẻ như hiện nay là không có gì tốt hơn so với NonNullable <> ... Tôi ước gì tôi đã có thể nhận một số ý kiến ​​trên ++/CLI thứ C vì nó đã có ít nhất một phần dung dịch.

+0

Liên kết là chết. Liên kết mới: http://codeblog.jonskeet.uk/2008/10/06/non-nullable-reference-types/ –

+0

Cố định, cảm ơn ... –

Trả lời

10

Tôi đã gặp phải điều này một vài lần ... Tôi chưa tìm thấy bất kỳ điều gì tốt hơn giải pháp của Skeet. Nó giải quyết tất cả các trường hợp tôi đã gặp phải, vì vậy tôi phải bỏ phiếu cho tôi.

Tôi đồng ý rằng đó là một chút tình huống khó khăn mà chúng tôi phải giải quyết cho điều đó ... nhưng bản sửa lỗi của anh ấy không giải quyết được vấn đề.

+1

Điều này cảm thấy giống như một bình luận hơn là câu trả lời. – Russell

+6

@Russell - Anh ấy hỏi nếu có giải pháp tốt hơn ... sau nhiều tìm kiếm tôi chưa bao giờ tìm thấy. Nếu tôi sắp dành rất nhiều thời gian để tìm kiếm, đó là câu trả lời tôi muốn từ đầu. Đây là câu trả lời cho câu hỏi của anh ta: "Có điều gì tốt hơn thì NonNullable <>?" –

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