ể ở ầ
− Các kiểu giá trị có một khởi tạo (constructor) ngầm định, do vậy bạn không cần phải bao gồm trong phần khai báo từ khóa New như khi khai báo với class
− Ví dụ:
bool b = false;
• Cách khai báo các kiểu giá trị
ấ ể ể
− .NET 2.0 cung cấp một kiểu mới đó là kiểu Nullable cho
phép kiểm tra liệu một biến đã được gán giá trị hay chưa − Ví dVí dụụ::
Nullable<bool> b = null;
Các kiểu dữ liệu
• Cách khai báo các kiểu giá trị
ế ể ử
− Một biến có kiểu nullable cho phép sử dụng các thành viên HasValue và Value. Bạn có thể sử dụng HasValue
để kiểm tra liệu có hay không một giá trị đã được thiết lập
− Ví dụ:
if (b.HasValue)
Console.WriteLine("b is {0}.", b.Value); else
Console WriteLine("b is not set "); Console.WriteLine( b is not set. );
• Cách tạo và sử dụng các kiểu dữ liệu
Cá kiể iá t ị (V l T )
− Các kiểu giá trị (Value Types)
Các kiểu dữ liệu
• Các kiểu tham chiếu (Reference Types)
Các kiểu tham chiếu lưu trữ địa chỉ dữ liệu của chúng cũng
− Các kiểu tham chiếu lưu trữ địa chỉ dữ liệu của chúng, cũng
được hiểu như là một con trỏ (pointer), trên stack.
− Dữ liệu thực sự mà các tham chiếu địa chỉ tham chiếu tới
được lưu trữ trong một vùng bộ nhớ được gọi là heap
− Hầu hết các kiểu trong .NET Framework là kiểu tham chiếu. Các kiểu tham chiếu cung cấp rất nhiều cho tính linh động, Các kiểu tham chiếu cung cấp rất nhiều cho tính linh động, uyển chuyển, chúng mang đến khả năng thực thi hoàn hảo khi gởi chúng tới các phương thức
• Các kiểu tham chiếu được xây dựng sẵn
Thời điểm vận hành (runtime) quản lý bộ nhớ bằng việc sử − Thời điểm vận hành (runtime) quản lý bộ nhớ bằng việc sử
dụng heap thông qua một tiến trình được gọi là garbage
collection. Garbage collection sẽ khởi tạo bộ nhớ theo chu kỳ
dựa theo nhu cầu bằng cách loại bỏ các đối tượng không còn dựa theo nhu cầu bằng cách loại bỏ các đối tượng không còn
được tham chiếu nữa.
− Có khoảng 2500 kiểu tham chiếu được xây dựng sẵn
NET F k (khô đ dẫ ấ ừ
Các kiểu dữ liệu
• Các kiểu tham chiếu được xây dựng sẵn
Cá kiể th hiế th ờ dù
Kiểu Ý nghĩa sử dụng
ể ổ
− Các kiểu tham chiếu thường dùng:
System.Object Kiểu tổng quát
System.String Dữ liệu dạng Text
System Text StringBuilder Dữ liệu dạng Dynamic text
System.Text.StringBuilder Dữ liệu dạng Dynamic text
System.Array Mảng dữ liệu
• Sử dụng string và StringBuilder
Ví dụ sử dụng string:
− Ví dụ sử dụng string:
string s = "this is some text to search"; s = s.Replace("search", "replace");p ( , p );
Console.WriteLine(s);
− Khi có bất kỳỳ sửa đổi đối với chuỗi tại thời điểm vận hành sẽ
Các kiểu dữ liệu
• Sử dụng string và StringBuilder
Đoạn mã lệnh sau đây sẽ cấp phát bốn chuỗi mới trong bộ − Đoạn mã lệnh sau đây sẽ cấp phát bốn chuỗi mới trong bộ
nhớ:
string s;
" b t" // " b t" s = "wombat"; // "wombat"
s += " kangaroo"; // "wombat kangaroo"
s += " wallaby"; // "wombat kangaroo wallaby"
s += " koala"; // "wombat kangaroo wallaby koala"; // g yConsole.WriteLine(s); Console.WriteLine(s);
− Chỉ chuỗi sau cùng là có một tham chiếu; ba chuỗi kia sẽ được dispose khi công cụ thu gom rác làm việc (garbage
• Sử dụng string và StringBuilder
Việc ngăn ngừa các loại chuỗi tạm thời này giúp tránh gom
− Việc ngăn ngừa các loại chuỗi tạm thời này giúp tránh gom rác không cần thiết, cải thiện hiệu suất hoạt động
− Có mCó mộột st sốố cách cách đểđể ngngăăn ngn ngừừa các chua các chuỗỗi ti tạạm thm thờời:i:
• Sử dụng các phương thức Concat, Join, hay Format của lớp
String ghép nhiều item trong một câu lệnh đơn lẻ
Các kiểu dữ liệu
• Sử dụng string và StringBuilder
− Đoạn mã lệnh sau đây giải thích cách sử dụng StringBuilder
System.Text.StringBuilder sb = new System.Text.StringBuilder(30);
sb.Append("wombat"); // Build string. sb.Append(" kangaroo");
sb.Append(" wallaby"); sb.Append(" koala"); sb.Append( koala );
string s = sb.ToString(); // Copy result to string. Console.WriteLine(s);