Your SlideShare is downloading. ×
0
Val
Val
Val
Val
Val
Val
Val
Val
Val
Val
Val
Val
Val
Val
Val
Val
Val
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Val

137

Published on

...

...

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

  • Be the first to like this

No Downloads
Views
Total Views
137
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  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ó.
  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>
  5. Khi hàm kết thúc kết quả sẽ được trả về và được lưu trong biến result.
  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>
  7. Cứ lúc nào một biến trong method được khai báo thì nó sẽ được đặt vào stack
  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); }
  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>
  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 đó.
  11. Nó bắt đầu có sự khác biệt với ví dụ trước.
  12. Sau khi hàm AddFive() kết thúc, chúng ta sẽ dọn dẹp ….
  13.  
  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
  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
  16. public int ReturnValue()           {                 int x = 3;                 int y = x;                     y = 4;                 return x;           }
  17. public int ReturnValue2()           {                 MyInt x;                 x.MyValue = 3;                 MyInt y;                 y = x;                                 y.MyValue = 4;                 return x.MyValue;           }

×