2010-08-18 30 views

Trả lời

39

Bạn có thể sử dụng OutAttribute:

using namespace System::Runtime::InteropServices;  
void foo([Out] Bar^% x); 
8

Không có cú pháp cụ thể như vậy trong C++/CLI. Tôi nghĩ rằng bạn có thể nhận được khá gần bằng cách thêm OutAttribute để sửa đổi tham số. Nhưng tôi không chắc chắn rằng đạt được các ngữ nghĩa chính xác giống như C# out.

Khái niệm về out là phần lớn được giới hạn ở C#. CLR chỉ thực sự nhìn thấy thông số ref. Các khái niệm out đạt được thông qua một lựa chọn mod tôi tin và hầu hết các ngôn ngữ bỏ qua nó.

+1

Yup, tương tự cho VB.NET –

+1

Đây là pass-by-reference cú pháp với 'OutAttribute' áp dụng cho các tham số như bạn nói. Nó tạo ra cùng một siêu dữ liệu giống như các tham số C# 'out'. Bởi "không ... chính xác cùng ngữ nghĩa" là bạn đề cập đến một thực tế là trong C# tham số bắt đầu ra uninitialized và phải được chắc chắn được giao trước khi trả về chức năng? –

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