Chủ Nhật, 3 tháng 1, 2010

C#: Từ khóa Static

Từ khóa static trong C#

-          Biến tĩnh (static variable):

Biến tĩnh là là biến có từ khóa static trước kiểu dữ liệu của biến.

Biến tĩnh chỉ được khởi tạo một lần trong bộ nhớ cho tất cả các thể hiện của đối tượng đó.

Ví dụ:

static string KeyName = "";

 

-          Phương thức tĩnh (static method)

Phương thức tĩnh là phương thức có từ khóa static trước kiểu dữ liệu trả về của phương thức đó khi khai báo phương thức.

Trong thân của phương thức chỉ được phép truy xuất những thành viên tĩnh (static member).

Ví dụ:

    class KeywordTestClass

    {

        static string KeyName = "";

        string KeyID = "";

 

        public static string GetKeyName()

        {

            return KeyName;

        }

 

        public static string GetID()

        {

            return KeyID;   //Sai

        }

      }

-          Phương thức khởi tạo tĩnh (static constructor)

Phương thức khởi tạo tĩnh là phương thức có từ khóa static trước phương thức khởi tạo.

Phương thức khởi tạo được chạy trước khi bất kỳ đối tượng nào được tạo ra bằng toán tử new. Nên cận thận khi sử dụng phương thức khởi tạo tĩnh.

Ví dụ:

    class KeywordTestClass

    {

        static string KeyName = "";

 

        static KeywordTestClass()

        {

            KeyName = "KeywordTest";

        }

    }

 

-          Lớp tĩnh (static class)

Lớp tĩnh là lớp có khai báo từ khóa static trước tên lớp.

Đặc tính chủ yếu của lớp tĩnh:

1.  Chỉ chứa các tình viên tĩnh (They only contain static members). Tức là tất cả các biến hay phương thức đều phải khai báo là static.

2.  Không có thể hiện của lớp (They cannot be instantiated). Tức là không thể dử dụng từ khóa new để tạo đối tượng của lớp tĩnh.

3.  Là lớp niêm phong (They are sealed). Tức là không thể kế thừa từ lớp tĩnh.

4.  Không có phương tức khởi tạo thể hiện (They cannot contain Instance Constructors). Tức là phương thức khởi tạo cũng phải là static.

Ví dụ:

    public static class KeywordTestClass

    {

        static string KeyName = "";

        string KeyID = "";  //Sai

 

        static KeywordTestClass()

        {

            KeyName = "KeywordTest";

        }

 

        public static string GetKeyName()

        {

            return KeyName;

        }

 

        public string GetID()   //Sai

        {

            return KeyID;   //Sai

        }

    }

Không có nhận xét nào:

Đăng nhận xét