Biểu đồ so sánh
Cơ sở để so sánh | Tham chiếu | Ngoài |
---|---|---|
Căn bản | Nó cho phép thay đổi giá trị của đối số được tiến hành với từ khóa ref. | Nó cho phép một phương thức trả về các giá trị trước một từ khóa out. |
Khởi tạo | Tham số ref phải được khởi tạo trước lệnh gọi phương thức. | Tham số out phải được khởi tạo bên trong phương thức được gọi trước khi nó kết thúc. |
Tờ khai | Tham số được thay đổi bởi một phương thức được khai báo là ref trong khi khai báo phương thức và gọi phương thức. | Tham số được trả về phải được khai báo là ref trong khi khai báo phương thức và gọi phương thức. |
Định nghĩa của từ khóa Ref
Phần mềm giới thiệu là một công cụ sửa đổi tham số được sử dụng khi có nhu cầu gọi một phương thức với tham chiếu cuộc gọi. Khi chúng ta muốn các thay đổi được thực hiện cho các đối số bên trong một phương thức được gọi phải phản ánh giá trị ban đầu của biến đó, thì công cụ sửa đổi tham số ref được sử dụng. Kiểu giá trị mà chúng tôi muốn khai báo là một ref được đi trước bởi từ khóa ref ref trong khi khai báo phương thức và gọi phương thức. Nhiều hơn một tham số có thể được khai báo là một ref ref trong khi gọi và khai báo một phương thức.
sử dụng hệ thống; lớp DemoRef {công khai void Square (ref int s) {s = s * s; }} lớp Ref_main {static void Main () {DemoRef ob = new DemoRef (); int a = 10; Console.WriteLine ("a trước khi gọi phương thức:" + a); ob.Sapes (ref a); // Đã sử dụng ref Keyword Console.WriteLine ("a sau cuộc gọi:" + a); }} // xuất a trước khi gọi phương thức: 10 a sau khi gọi phương thức: 100
Trong đoạn mã trên, biến 'a' được truyền dưới dạng đối số cho phương thức Square (ref a) cùng với tham số sửa đổi tham số được đính kèm với nó. Nó có nghĩa là bất cứ điều gì thay đổi phương thức Square (ref a) sẽ thực hiện trên biến 'a' bên trong nó sẽ phản ánh giá trị ban đầu của 'a', bên ngoài phương thức cũng vậy.
Có một số điểm quan trọng cần phải ghi nhớ khi xử lý tham số sửa đổi tham số.
- Đối số mà bạn đang chuyển qua ref cho một phương thức phải được khởi tạo trước khi gọi phương thức.
- Phương thức không được gán giá trị ban đầu cho đối số ref.
- Bạn cũng có thể sử dụng ref cùng với biến tham chiếu.
Định nghĩa của từ khóa
Mỗi lần bạn gọi một phương thức, nó sẽ chỉ trả về một giá trị duy nhất. Nếu bạn muốn một phương thức trả về nhiều hơn một giá trị trong một cuộc gọi, từ khóa của Out out ra phải được sử dụng cùng với các tham số mà bạn muốn trả về khi phương thức bị chấm dứt. Đôi khi, đó là trường hợp khi chúng ta không muốn truyền bất cứ điều gì cho phương thức nhưng muốn phương thức trả lại một cái gì đó, chúng ta sử dụng các tham số với một từ khóa out. Hãy hiểu nó với một ví dụ.
sử dụng hệ thống; class DemoOut {public int Decompose (double x, out double double) {int Whole_num; Whole_num = (int) x; phân số = x - Whole_num; trả lại toàn bộ tên; }} lớp Out_maint {static void Main () {DemoOut ob = new DemoOut (); int i; frac đôi; i = ob.Decompose (100.125, hết frac); // đã sử dụng hết từ khóa Console.WriteLine ("Toàn bộ phần số là" + i); Console.WriteLine ("phần phân số là" + frac); }} // đầu ra Phần nguyên là 100 Phần phân số là 0, 125
Trong đoạn mã trên, hai giá trị đang được trả về bởi, phương thức Decompose (). Một cái nó trả về bởi từ khóa, trả về, ví dụ như full_num, và cái khác nó trả về một tham số đi trước từ khóa out trong khi gọi phương thức tức là frac fr.
Những điểm quan trọng cần nhớ về từ khóa out.
- Không giống như từ khóa ref, tham số sử dụng từ khóa out không được khởi tạo trước khi gọi phương thức.
- Phương thức được gọi sẽ tự gán một giá trị cho tham số với từ khóa out vì nó được coi là không được gán bên trong phương thức được gọi, nghĩa là nó được coi là không có giá trị ban đầu.
- Phương thức được gọi phải gán một giá trị cho tham số out trước khi phương thức kết thúc.
- Từ khóa out cũng được áp dụng cho biến tham chiếu.
Sự khác biệt chính giữa Ref và Out trong C #
- Khi một biến đi trước từ khóa ref được truyền cho bất kỳ phương thức nào thì những thay đổi được thực hiện cho nó bên trong phương thức sẽ phản ánh giá trị ban đầu của nó. Khi một biến được truyền cho một phương thức được đi trước bởi từ khóa out, phương thức trả về nó mà không sử dụng từ khóa return.
- Tham số ref nên được khởi tạo trước khi nó được truyền cho một phương thức. Mặt khác, tham số out phải được khởi tạo bên trong phương thức mà nó được truyền vào.
- Trong khi gọi, khai báo hoặc xác định một phương thức, tham số ref được khai báo rõ ràng là ref. Mặt khác, trong khi gọi, khai báo hoặc định nghĩa một phương thức, tham số out được khai báo rõ ràng là out.
Phần kết luận:
Bất cứ khi nào biến được truyền bởi tham chiếu đến một phương thức, từ khóa ref và out có thể được sử dụng. Trong khi đó, lý do sử dụng cả hai từ khóa là khác nhau khi từ khóa ref có thể được sử dụng để thay đổi giá trị của đối số đi trước từ khóa ref, được chuyển đến phương thức được gọi và từ khóa out được sử dụng để trả về giá trị của đối số đi trước theo từ khóa ra.