Cách khai báo các kiểu giá trị

Một phần của tài liệu Giáo trình C# - Cơ Bản (Bài 2. Khái niệm Framework) (Trang 25 - 36)

ể ở ầ

− 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 kiu 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 kiu 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 kiu d liu

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ử (adsbygoogle = window.adsbygoogle || []).push({});

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" (adsbygoogle = window.adsbygoogle || []).push({});

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);

Một phần của tài liệu Giáo trình C# - Cơ Bản (Bài 2. Khái niệm Framework) (Trang 25 - 36)