TOC

This article is currently in the process of being translated into Vietnamese (~72% done).

The Basics:

Variables

Một biến có thể được xem là một căn phòng chứa, nó là thứ tối thiết cho một lập trình viên. Trong C#, 1 biến được khai báo như sau:

<data type> <name>;

Ví dụ như sau:

string name;

Đây là ví dụ cơ bản nhất, nhưng biến này chưa có giá trị. Bạn có thể gán giá trị cho biến ở cuối hoặc cùng lúc khi khai báo, theo như:

<data type> <name> = <value>;

Nếu biến này không phải là biến cục bộ dùng trong phương thức mà bạn đang sử dụng (ví dụ: 1 biến thành viên của 1 lớp), bạn có thể qui định biến đó được công khai hay riêng tư:

<visibility> <data type> <name> = <value>;

Ví dụ hoàn chỉnh:

private string name = "John Doe";

Phần được hiển thị có quan hệ tới các lớp, vì vậy em có thể tìm thấy nhiều phần giải thích hoàn chỉnh hơn trong chương này tập trung vào lớp. Hãy chú ý với biến trong ví dụ được cho vì chúng ta có thể sử dụng cả hai lần:

using System;

namespace ConsoleApplication1
{
    class Program
    {
static void Main(string[] args)
{
    string firstName = "John";
    string lastName = "Doe";

    Console.WriteLine("Name: " + firstName + " " + lastName);

    Console.WriteLine("Please enter a new first name:");
    firstName = Console.ReadLine();

    Console.WriteLine("New name: " + firstName + " " + lastName);

    Console.ReadLine();
}
    }
}

Tuyệt nhỉ, nhiều phần đã được giải thích, nên chúng ta sẽ đi thẳng đến phần thú vị nhé. Đầu tiên, chúng ta khai báo vài biến kiểu string. String đơn giản là bao gồm kí tự, như bạn thấy, chúng ta truyền thẳng giá trị cho các biến đó. Tiếp theo, xuất ra dòng kí tự ra màn hình hiển thị, nơi ta sử dụng hai biến trên. Chuỗi tạo thành bởi kí tự + để "chứa" các phần tử khác nhau.

Kế, chúng ta hỏi người dùng nhập vào tên họ, và sau gọi phương thức ReadLine() để truyền thông tin nhập từ bàn phím và điền vào biến tên họ. Tại thời điểm người dùng nhấn Enter thì giá trị biến đã được hoàn thành. Chúng ta đã sử dụng thành công biến đầu tiên và tố chất quan trọng bậc nhất của nó: thiên phú thay đổi kết cấu tại thời điểm thực thi.

Một khả dụ thú vị nữa kết hợp toán học. Giới thiệu với bạn, cơ bản tương tự như code chúng ta vừa lập trình:

int number1, number2;

Console.WriteLine("Please enter a number:");
number1 = int.Parse(Console.ReadLine());

Console.WriteLine("Thank you. One more:");
number2 = int.Parse(Console.ReadLine());

Console.WriteLine("Adding the two numbers: " + (number1 + number2));

Console.ReadLine();

Đặt phần code này vào thủ tục Main và chạy. Phần hay ho ở đây chúng ta sử dụng chút "mẹo", goi là phương thức int.Parse(). Chức năng là đọc kiểu dữ liệu chuỗi và chuyển thành dạng số nguyên. Đọc code ta thấy rằng ứng dụng này không ảnh hưởng đến việc nhắc nhở thiện chí với người nhập liệu, và cả khi bạn nhập một thứ không phải số, lỗi nhập sai sẽ được hiển thị. Chi tiết ở những phần sau.

Variables & scope

Tạm thời, chúng ta chỉ sử dụng đến những biến cục bộ, các biến này đã được định nghĩa và sử dụng cùng kiểu phương thức. Trong môi trường C#, biến được định nghĩa trong một phương thức không thể sử dụng ngoài phương thức đó- nguồn gốc của cách gọi này. Nếu bạn chỉ thường xuyên tiếp cận những ngôn ngữ lập trình khác, ở C# không hỗ trợ các biến toàn cục. Thay vào đó, bạn có thể định dạng trường trên cấu trúc lớp, từ đó có thể tiếp cận với các phương thức của lớp đó. Chúng ta sẽ có ví dụ chính xác sau đây:

using System;

namespace VariableScope
{
    class Program
    {
private static string helloClass = "Hello, class!";

static void Main(string[] args)
{
    string helloLocal = "Hello, local!";
    Console.WriteLine(helloLocal);
    Console.WriteLine(Program.helloClass);
    DoStuff();
}

static void DoStuff()
{
    Console.WriteLine("A message from DoStuff: " + Program.helloClass);
}
    }
}

Notice the helloClass member, declared on the class scope instead of inside a method - this will allow us to access it from both our Main() method as well as our own DoStuff() method. That is not true for our helloLocal variable, which has been declared inside the Main() method and can therefore only be used inside of this specific method.

The concept of differentiating between where a variable has been declared is called scoping and it prevents your code from becoming a huge mess of variables which can be changed from too many places. Another technique that helps us with this is called member visibility (in this case illustrated with the private keyword), which we'll discuss in the chapter about classes.

Summary

Variables allow you to store data of various types, e.g. text strings, numbers or custom objects. There are local variables, which are accessible inside of the method in which it has been defined, and then there are class fields, which can be accessed from all the methods of the class and even outside of the class, if the visibility permits it.

This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!