public class MyClass
{
int i = 0;
string str = "here";
MyStruct mystruct;
B b;
ArrayList myList = new ArrayList(10);
public MyClass()
{
}
....
}
public struct MyStruct
{
public int i;
public float f;
}
public class B
{
...
}
Muốn tìm hiểu cách thể hiện của một lớp được tạo trong nền. Khi tuyên bố nàyLàm thế nào để C# tạo một thể hiện của một lớp?
MyClass myClass = new MyClass();
được đánh giá. Điều gì sẽ xảy ra trong backgroud? Các câu sau của tôi là đúng hay không (đối với máy tính hệ điều hành 32 bit)?
- Không gian bộ nhớ sẽ được tạo và tham chiếu là
myClass
; - trong không gian bộ nhớ trên, 4 byte được sử dụng cho giá trị
int i
; - trong không gian bộ nhớ trên, 4 byte được sử dụng để tham chiếu
string str
; giá trị thực tế củastr
được lưu ở vị trí khác (ở đâu?) - trong không gian bộ nhớ trên, 8 byte được sử dụng cho giá trị
MyStruct mystruct
(vì MyStruct là 8 byte); - trong không gian bộ nhớ trên, 4 byte được sử dụng để tham chiếu đối tượng
B b
; bộ nhớ cho đối tượng b sẽ được cấp phát ở một nơi khác khi nó được khởi tạo; - trong không gian bộ nhớ trên, 4 byte được sử dụng để tham chiếu đến
ArrayList myList
; không gian bộ nhớ thực tế choArrayList myList
được phân bổ ở nơi khác và được tham chiếu tại đây làmyList
; - một 4 hoặc 8 byte khác từ không gian bộ nhớ trên được sử dụng cho siêu dữ liệu đối tượng;
- ...;