Biến, hằng và các kiểu dữ liệu trong C# 7.0 – Visual Studio 2017 - Bài 2

Biến, hằng và các kiểu dữ liệu trong C# 7.0 – Visual Studio 2017 - Bài 2
access_time 11/18/2017 12:00:00 AM
person Nguyễn Mạnh Hùng

1. Phác thảo chương trình đơn giản được viết bằng C#

Trong bài số 1 tôi đã giới thiệu cho các bạn biết cách tạo một chương trình dạng Console (Chương trình sử dụng cửa sổ lệnh để hiển thị dữ liệu và nhập dữ liệu), tuy nhiên tôi cũng xin điểm qua một vài vấn đề cơ bản về ngôn ngữ C#.

Ngôn ngữ C# tương tự như ngôn ngữ lập trình C++, Java, đó là ngôn ngữ phân biệt chữ cái hoa và chữ cái thường khi lập trình ví dụ các bạn đặt tên một biến hoặc một hằng là “SoMot” thì nó sẽ khác một biến được đặt là “soMot”.

Ngôn ngữ lập trình C# không hỗ trợ khai báo phương thức và biến toàn cục (Có nghĩa là lập trình viên khai báo 1 phương thức hoặc biến ở có phạm vi áp dụng trên toàn bộ ứng dụng).

Cũng giống như ngôn ngữ C và C++ thì một chương trình Console được khởi đầu chạy bằng hàm Main, một chương trình chỉ có duy nhất một phương thức Main.

+ Các phương thức Main khác nhau : Mặc định khi tạo ứng ụng Console Visual Studio sẽ tạo ra class có phương thức Main trả về void và có một mảng có kiểu string danh sách các tham số chuyền vào cho hàm Main. Tuy nhiên các bạn có thể tạo hàm Main theo các nguyên mẫu khác nhau như sau :

2. Biến và các kiểu dữ liệu
Tất cả chương trình ứng dụng đều phải thao tác với dữ liệu theo nhiều cách khác nhau. Lập trình viên C# cần phải hiểu được cách thức lưu trữ và xử lý dữ liệu trong chương trình mà lập trình viên đó muốn xây dựng và phát triển.
Khi chương trình cần lưu trư dữ liệu tạm thời để phục vụ cho quá trình xử lý tính toán thì chúng ta nghĩ ngay tới việc lưu trữ dữ liệu đó vào trong một biến. Trước khi sử dụng biến thì phải định nghĩa nó. Khi định nghĩa biến thì chúng ta phải định nghĩa tên biến và kiểu dữ liệu của biến.
2.1 Định nghĩa
Một biến là một thực thể chứa giá trị, giá trị này có thể được thay đổi trong chương trình hoặc trong một khối lệnh chứa nó. Ví dụ dùng biến để lưu trữ thông tin của tuổi của một sinh viên, hay mức lương của một nhân viên trong công ty.
Tương tự như các ngôn ngữ lập trình khác như C, C++, Java … Thông tin của biến sẽ được lưu trữ trong bộ nhớ máy tính và được định danh thông qua tên biến, tên biến được xác định là duy nhất trong phạm vi khai báo biến. Giá trị của biến sẽ được xác định thông qua tên biến, kích cỡ của bộ nhớ cấp phát cho biến đó là phụ thuộc vào kiểu dữ liệu của biến.
2.2 Sử dụng biến
Trong C#, bộ nhớ được khởi tạo và cấp phát cho biến tại thời điểm biến đó được tạo. Lập trình viên có thể khởi tạo giá trị của biến tại thời điểm tạo biến hoặc muộn hơn.
Ví dụ : int empNumber = 100; Khai báo một biến có tên là empNumber, giá trị của biến này được thiết lập tại lúc khởi tạo biến.
Hình ảnh mô tả biến :
Hình số 1 : Mô tả biến
Cú pháp khai báo biến trong C# như sau :
Cú pháp:
<Kiểu dữ liệu> <Tên biến >;
Mô tả :
<Kiểu dữ liệu> : Là kiểu dữ liệu của biến, kiểu dữ liệu này được C# hỗ trợ.
<Tên biến> : Tên của biến; Chú ý tên của biến cần phải tuân thủ theo quy tắc đặt tên biến của C#.
 Quy tắc gán giá trị : Giá trị của biến có thể được gán tại lúc khởi tạo biến hoặc sau đó đều được. Cũng như các ngôn nhữ khác để gán giá trị của biến ta sử dụng dấu “=”;
2.3 Kiểu dữ liệu
CLR (Common Language Runtime) bao gồm CTS (Common Type System), CTS bao gồm tập hợp các kiểu dữ liệu được xây dựng mà lập trình viên có thể được sử dụng trong quá trình khai báo và sử dụng biến.
CTS hỗ trợ cả 2 kiểu giá trị (Value-type) và kiểu tham chiếu (Reference-types).
Kiểu giá trị (Value types) : Biến có kiểu giá trị sẽ chứa giá trị trực tiếp của dữ liệu mà nó chứa. Mỗi biến kiểu giá trị tự nó tạo ra bản sao chứa dữ liệu do vậy các thao tác dữ liệu trên biến này sẽ không làm ảnh hưởng tới các giá trị của biến khác.
Kiểu tham chiếu (Reference types): Chứa tham chiếu tới dữ liệu điều này có nghĩa là biến có kiểu tham chiếu sẽ trỏ tới địa chỉ chứa dữ liệu mà dữ liệu của biến đó chứa. Vì vậy có khả năng với một địa chỉ có thể có 2 biến tham chiếu cùng trỏ tới. Vì vậy khi thao tác trên một biến có thể sẽ ảnh hưởng tới biến kia.  
Ví dụ :
Hình số 2 : Mô tả hình ảnh kiểu giá trị và kiểu tham chiếu
So sánh kiểu giá trị và kiểu tham chiếu
Bảng dưới đây so sánh biến có kiểu dữ liệu giá trị và biến có kiểu dữ liệu tham chiếu :
1.3.1 Các kiểu dữ liệu được xác định trước (Pre-defined data types)
Trong C# các kiểu dữ liệu được xác định trước là các kiểu dữ liệu cơ bản, các kiểu dữ liệu này được xác định trước về phạm vi và kích cỡ. Kích cỡ của dữ liệu giúp trình biên dịch cấp phát kích cỡ của bộ nhớ đối với biến và phạm vi dữ liệu giúp trình biên dịch chắc chắn rằng giá trị được gán nằm trong phạm vi kích cỡ của kiểu dữ liệu mà biến được khai báo.
Bảng sau đây mô tả kích cỡ và phạm vi dữ liệu của kiểu dữ liệu được xác định trước :

Hình số 3 : Mô tả kiểu dữ liệu trong C#

2.3.2 Phân loại kiểu dữ liệu tham chiếu
C# phân loại kiểu dữ liệu tham chiếu thành các loại như sau :  2.4 Quy tắc khai báo biến trong C# Ví dụ
3. Chú thích trong C#
Trong quá trình lập trình, các lập trình viên cần phải chú thích các đoạn mã do mình phát triển, chú thích này giúp cho các thành viên trong nhóm hiểu rõ hơn ý nghĩa của các đoạn mã do lập trình viên tạo ra. Chú thích rất có ý nghĩa khi chương trình ở các giai đoạn phát triển, nâng cấp và cập nhật các chức năng cho chương trình.
Ngoài ra khi thực hiện Unit Test thì cần hiểu chính xác ý nghĩa của các phương thức và các lớp được tạo ra của từng module của chương trình.
C# hỗ trợ 3 kiểu chú thích chính : Ví dụ : Ví dụ sau mô tả cách thức chú thích trong C#
Hình số 4 : Sử dụng chú thích trong C#
Lợi ích sử dụng chú thích XML : Với các file chứa đoạn mã C# nếu sử dụng chú thích XML, khi lập trình viên muốn tạo các tài liệu kỹ thuật nhằm mô tả chi tiết các class, phương thức thực hiện thì lập trình viên chỉ cần sử dụng câu lệnh csc để tạo tài liệu XML thông qua cú pháp sau :
csc /doc:<Tên tập tin .Xml sẽ tạo thành> <Đường dẫn file nguồn chứa .cs>
Ví dụ :
csc /doc:”E:\Projects\Add.xml”  “E:\Products\Example\AddNumber.cs”
Ngoài ra có thể sử dụng chức năng chức năng hỗ trợ sẵn trên bộ Visual Studio 2015 :
Để thực hiện thao tác này, các bạn chọn Property của Project, sau đó chọn Build và làm theo hình dưới đây :
 
Hình số 5: Cấu hình xuất ra file XML
4. Hằng
Hằng cũng là một biến nhưng giá trị của hằng không thay đổi. Biến là công cụ rất mạnh, tuy nhiên khi làm việc với một giá trị được định nghĩa là không thay đổi, lập trình viên phải đảm bảo giá trị của nó không được thay đổi trong suốt chương trình.
4.1 Các kiểu hằng
4.2 Khai báo hằng
Trong C# lập trình viên có thể khai báo hằng cho tất cả các kiểu dữ liệu. Khi khai báo hằng bắt buộc phải thiết lập giá trị của hằng trước khi sử dụng. Sử dụng từ khóa const để khai báo hằng, sau đây mô tả cú pháp khai báo hằng
Cú pháp :
const<data type><identifier name> = <value>;
Mô tả :  Ví dụ :
Hình số 6 : Khai báo hằng
 
5. Phương thức xuất nhập cơ bản
Với các lập trình viên mới học lập trình C# , luôn phải sử dụng cửa sổ dòng lệnh để thực hiện xuất nhập dữ liệu của chương trình. Để thực hiện điều này thì lập trình viên bắt buộc phải nắm được các phương thức nhập xuất cơ bản của C#.
Trong ứng dụng Console có 3 luồng cơ bản dùng để xử lý vào/ra: 5.1 Phương thức xuất dữ liệu
Trong C#, lớp Console trong namespace System dùng để thực hiện các hoạt động trên console.Để hiển thị ra màn hình ta sử dụng 2 phương thức đầu ra :  Ví dụ : Hình số 3 Sử dụng phương thức Console.WriteLine() để hiển thị thông tin tính tổng 2 số nguyên.
Chú ý khi sử dụng hàm Console.WriteLine() nếu ta muốn hiển thị thông tin của nhiều biến đầu ra thì ta sử dụng Placeholder để chứa các thông tin về vị trí xuất dữ liệu cũng như là format xuất dữ liệu.
Ví dụ : Hình số 5 Sử dụng phương thức
Console.WriteLine(“Diện tích đường tròn có bán kính {0} là {1}”,radius,area);
{0} : Vị trí xuất dữ liệu tương ứng với bán kính (radius).
{1} : Vị trí dữ liệu tương ứng với diện tích.
Chú ý : Khi sử dụng phương thức xuất dữ liệu cần phải chú ý các định dạng dữ liệu khi xuất đó chính là các định dạng kiểu số thực, kiểu Datetime.
Ví dụ : Mô tả sử dụng phương thức Console.WriteLine() có sử dụng format kiểu số và format kiểu Datetime
Hình số 7 : Sử dụng format dữ liệu với hàm Console.WriteLine()
5.2 Phương thức đọc dữ liệu
Trong C#, để đọc dữ liệu từ bàn phím ta sử dụng nhập chuẩn Standard in  và thông qua 2 phương thức của lớp Console. Ví dụ : Hình số 3 mô tả sử dụng Phương thức Console.ReadLine() để đọc giá trị nhập vào của Number1 và Number2.
 Chú ý: Khi sử dụng hàm đọc dữ liệu Console.ReadLine() thì cần phải sử dụng các phương thức chuyển kiểu để thực hiện chuyển kiểu dữ liệu về giá trị mong muốn.
vertical_align_top
share
Chat...