Vì vậy, tôi mới đến C# và tôi gặp khó khăn trong việc hiểu out
. Trái ngược với chỉ trở về một cái gì đó từ một hàmC# out tham số vs trả về
using System;
class ReturnTest
{
static double CalculateArea()
{
double r=5;
double area = r * r * Math.PI;
return area;
}
static void Main()
{
double output = CalculateArea();
Console.WriteLine("The area is {0:0.00}", output);
}
}
so sánh với này
using System;
class ReturnTest
{
static void CalculateArea(out double r)
{
r=5;
r= r * r * Math.PI;
}
static void Main()
{
double radius;
CalculateArea(out radius);
Console.WriteLine("The area is {0:0.00}",radius);
Console.ReadLine();
}
}
Người đầu tiên là cách tôi thường sẽ làm điều đó. Có lý do nào để tôi có thể sử dụng số out
thay vì chỉ một câu trả lại không? Tôi hiểu rằng ref
cho phép liên lạc 2 chiều và tôi thường không nên sử dụng ref
trừ khi chức năng đang làm điều gì đó với biến tôi đang gửi.
Tuy nhiên, có sự khác biệt giữa các câu lệnh trả lời và trả lại, như được hiển thị ở trên không? Cú pháp-khôn ngoan là có một lý do để ủng hộ một hay khác?
Nghiên cứu 'Dictionary.TryGetValue' và' int.TryParse' và xem các ví dụ đó có giải thích tiện ích của 'out' không. –
'out' chủ yếu được sử dụng khi bạn cần trả lại nhiều giá trị không liên quan từ một phương thức. Đồng thời, nó thường được sử dụng để mô phỏng con trỏ khi xen kẽ với mã nguồn gốc thông qua COM hoặc p/invoke. – dlev
Hãy nhớ trong C/C++ chúng tôi có con trỏ. Khi bạn đưa con trỏ vào một hàm, bạn có thể sửa đổi nó trong hàm và giá trị sẽ thay đổi trong hàm gọi. ra khá nhiều điều tương tự. – carny666