Val

305 views

Published on

...

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
305
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Val

  1. 1.   public int AddFive(int pValue)           {                 int result;                 result = pValue + 5;                 return result;           } static void Main(string[] args) { Program p = new Program(); int a = p.AddFive(5); Console.WriteLine(a); }
  2. 3. Thread thi hành method sẽ thực hiện theo nội dung của hàm AddFive() và một trình biên dịch Sẽ được thực hiện nếu đây là lần đầu tiên chúng ta gọi đến nó.
  3. 4. <ul><li>Và sau khi hàm đó được thực hiện chúng ta cần phải có bộ nhớ để lưu biến kết quả và đó chính là một nơi trong stack. </li></ul>
  4. 5. Khi hàm kết thúc kết quả sẽ được trả về và được lưu trong biến result.
  5. 6. <ul><li>Và vùng nhớ trong stack sẽ được giải phóng bằng cách đưa con trỏ đến một vùng nhớ khác nơi hàm AddFive() bắt đầu và chúng ta sẽ đi xuống hàm tiếp theo trong stack </li></ul>
  6. 7. Cứ lúc nào một biến trong method được khai báo thì nó sẽ được đặt vào stack
  7. 8. class Program { public int AddFive(int pValue) { int result; result = pValue + 5; return result; } static void Main(string[] args) { Program p = new Program(); int a = p.AddFive(5); Console.WriteLine(a); }
  8. 9. Tuy nhiên kiểu giá trị cũng được lưu trong Heap. <ul><li>Nếu một biến kiểu giá trị được khai báo ngoài hàm nhưng trong một kiểu tham chiếu nó sẽ nằm ở trong kiểu tham chiếu trên Heap. </li></ul>
  9. 10. Thread bắt đầu thi hành hàm và những tham số của nó sẽ được đặt vào trong stack của thread đó.
  10. 11. Nó bắt đầu có sự khác biệt với ví dụ trước.
  11. 12. Sau khi hàm AddFive() kết thúc, chúng ta sẽ dọn dẹp ….
  12. 14. public int ReturnValue()           {                 int x = new int();                 x = 3;                 int y = new int();                 y = x;                       y = 4;                          return x;           } Chúng ta sẽ nhận về giá trị 3, khá là đơn giản
  13. 15. Tuy nhiên nếu chúng ta sử dụng MyInt class từ trước      public class MyInt           {                 public int MyValue;           } Sau đó chúng ta thực hiện method sau:           public int ReturnValue2()           {                 MyInt x = new MyInt();                 x.MyValue = 3;                 MyInt y = new MyInt();                 y = x;                                  y.MyValue = 4;                               return x.MyValue;           } 4
  14. 16. public int ReturnValue()           {                 int x = 3;                 int y = x;                     y = 4;                 return x;           }
  15. 17. public int ReturnValue2()           {                 MyInt x;                 x.MyValue = 3;                 MyInt y;                 y = x;                                 y.MyValue = 4;                 return x.MyValue;           }

×