Có cách nào khác để cập nhật tham số ref bên trong một phương thức ẩn danh không?Cập nhật tham số ref bên trong phương thức ẩn danh
Tôi biết rằng một phương pháp ẩn danh không cho phép truy cập vào tham số ref của phạm vi bên ngoài, nhưng có cách nào khác để làm điều đó không? Tôi đang sử dụng một thư viện bên ngoài cho MessageStream do đó không thể thay đổi các tham số của các đại biểu ...
void DoWork(ref int count)
{
MessageStream Stream = new MessageStream();
Stream.MessageReceived += (o, args) =>
{
//Error cannot use ref or out parameter inside anonymous method
count++;
};
}
Câu trả lời tùy thuộc vào việc bạn có thể chắc chắn 'Stream.MessageReceived' sẽ được nâng lên trước khi' DoWork' trả về hay không. Bạn có chắc chắn về điều đó không? – hvd
bạn có biết ngữ cảnh không an toàn không? Nếu tôi không đăng câu trả lời với giải pháp này – faby
@faby Tôi nghĩ tôi biết bạn đang nghĩ gì, và nếu tôi đúng, điều đó sẽ không hiệu quả. Nó sẽ * thường * làm việc, nhưng đôi khi nó sẽ thất bại, và không có cách nào để sửa nó để nó luôn hoạt động. – hvd