Biến C# và kiểu dữ liệu (Nguyên thủy)

95% Lập Trình Viên giỏi Đọc Hiểu English! Bạn Thì Sao?

Trong hướng dẫn này, chúng ta sẽ tìm hiểu về biến, cách tạo biến trong C # và các kiểu dữ liệu khác nhau mà ngôn ngữ lập trình C # hỗ trợ.

Một biến là một tên tượng trưng được đặt cho một vị trí bộ nhớ. Các biến được sử dụng để lưu trữ dữ liệu trong chương trình máy tính.

Cách khai báo biến trong C #?

Đây là một ví dụ để khai báo một biến trong C#.

int age;

Trong ví dụ này, một biến tuổi loại int(số nguyên) được khai báo và nó chỉ có thể lưu trữ số nguyên giá trị.

Chúng ta có thể gán một giá trị cho biến sau này trong chương trình của mình như sau:

int age;
... ... ...
age = 24;

Tuy nhiên, biến cũng có thể được khởi tạo thành một giá trị nào đó trong quá trình khai báo. Ví dụ,

int age = 24;

Ở đây, một biến tuổi của kiểu intđược khai báo và khởi tạo 24cùng một lúc.

Vì nó là một biến, chúng ta cũng có thể thay đổi giá trị của các biến. Ví dụ,

int age = 24;
age = 35;

Ở đây, giá trị của age được thay đổi thành 35 từ 24.

Các biến trong C# phải được khai báo trước khi chúng có thể được sử dụng. Điều này có nghĩa là, tên và kiểu của biến phải được biết trước khi chúng có thể được gán giá trị. Đây là lý do tại sao C# được gọi là ngôn ngữ định kiểu tĩnh .

Sau khi được khai báo, không thể thay đổi kiểu dữ liệu của một biến trong một phạm vi. Phạm vi có thể được coi như một khối mã nơi biến có thể nhìn thấy hoặc có sẵn để sử dụng. Nếu bạn không hiểu câu lệnh trước, đừng lo lắng, chúng ta sẽ tìm hiểu về phạm vi trong các chương sau.

Bây giờ hãy nhớ rằng, chúng ta không thể thực hiện những điều sau trong C#:

int age;
age = 24;
... ... ...
float age;

Các biến được nhập ngầm

Ngoài ra trong C #, chúng ta có thể khai báo một biến mà không cần biết kiểu của nó bằng cách sử dụng vartừ khóa. Các biến như vậy được gọi là các biến cục bộ được đánh kiểu ngầm định .

Các biến được khai báo bằng vartừ khóa phải được khởi tạo tại thời điểm khai báo.

var value = 5;

Trình biên dịch xác định loại biến từ giá trị được gán cho biến. Trong ví dụ trên, giá trị là kiểu int. Điều này tương đương với:

int value;
value = 5;

Bạn có thể tìm hiểu thêm về các biến cục bộ được nhập ngầm .

Quy tắc đặt tên biến trong C#

Có một số quy tắc nhất định chúng ta cần tuân theo khi đặt tên biến. Các quy tắc để đặt tên một biến trong C # là:

  1. Tên biến có thể chứa các chữ cái (chữ hoa và chữ thường), dấu gạch dưới (_) và chỉ các chữ số.
  2. Tên biến phải bắt đầu bằng ký tự, dấu gạch dưới hoặc ký hiệu @. Ví dụ,Rules for naming variables in C#Variable NamesRemarksnameValidsubject101Valid_ageValid (Best practice for naming private member variables)@breakValid (Used if name is a reserved keyword)101subjectInvalid (Starts with digit)your_nameValidyour nameInvalid (Contains whitespace)
  3. C # phân biệt chữ hoa chữ thường. Nó có nghĩa là tuổi và Tuổi đề cập đến 2 biến số khác nhau.
  4. Tên biến không được là từ khóa C #. Ví dụ, ifforusingkhông thể là một tên biến. Chúng ta sẽ thảo luận thêm về các từ khóa C # trong hướng dẫn tiếp theo.

Các phương pháp hay nhất để đặt tên cho một biến

  1. Chọn một tên biến có ý nghĩa. Ví dụ, tên , tuổi , chủ đề có ý nghĩa hơn n , a và s .
  2. Sử dụng ký hiệu camelCase (bắt đầu bằng chữ thường) để đặt tên cho các biến cục bộ. Ví dụ: numberOfStudents , age , v.v.
  3. Sử dụng PascalCase hoặc CamelCase (bắt đầu bằng chữ hoa) để đặt tên cho các biến thành viên công khai. Ví dụ: FirstName , Price , v.v.
  4. Sử dụng dấu gạch dưới ở đầu (_) theo sau là ký hiệu camelCase để đặt tên cho các biến thành viên riêng tư. Ví dụ: _bankBalance , _emailAddress , v.v.

Bạn có thể tìm hiểu thêm về quy ước đặt tên trong C # tại đây .

Đừng lo lắng về các biến thành viên công khai và riêng tư. Chúng ta sẽ tìm hiểu về chúng trong các chương sau.

Các kiểu dữ liệu ban đầu của C #

Các biến trong C # được phân loại rộng rãi thành hai loại: Loại giá trị và Loại tham chiếu . Trong hướng dẫn này, chúng ta sẽ thảo luận về các kiểu dữ liệu nguyên thủy (đơn giản) là một lớp con của các kiểu Giá trị.

Các kiểu tham khảo sẽ được đề cập trong các bài hướng dẫn sau. Tuy nhiên, nếu bạn muốn biết thêm về các loại biến, hãy truy cập Các loại và biến C # (tài liệu C # chính thức).

Boolean (bool)

  • Boolean data type has two possible values: true or false
  • Default valuefalse
  • Boolean variables are generally used to check conditions such as in if statementsloops, etc.

Ví dụ:

using System;
namespace DataType
{
    class BooleanExample
    {
        public static void Main(string[] args)
        {
            bool isValid = true;
            Console.WriteLine(isValid);
        }
    }
}

Khi chúng tôi chạy chương trình, kết quả đầu ra sẽ là:

True

Tích phân đã ký

Các kiểu dữ liệu này giữ các giá trị nguyên (cả dương và âm). Trong tổng số bit có sẵn, một bit được sử dụng cho dấu hiệu.

1. sbyte

  • Size: 8 bits
  • Range: -128 to 127.
  • Default value: 0

Ví dụ:

using System;
namespace DataType
{
    class SByteExample
    {
        public static void Main(string[] args)
        {
            sbyte level = 23;
            Console.WriteLine(level);
        }
    }
}

Khi chúng tôi chạy chương trình, kết quả đầu ra sẽ là:

23

Hãy thử gán các giá trị ngoài phạm vi tức là nhỏ hơn -128 hoặc lớn hơn 127 và xem điều gì sẽ xảy ra.

2. ngắn

  • Size: 16 bits
  • Range: -32,768 to 32,767
  • Default value: 0

Ví dụ:

using System;
namespace DataType
{
    class ShortExample
    {
        public static void Main(string[] args)
        {
            short value = -1109;
            Console.WriteLine(value);
        }
    }
}

Khi chúng tôi chạy chương trình, kết quả đầu ra sẽ là:

-1109

3. int

  • Size: 32 bits
  • Range: -231 to 231-1
  • Default value: 0

Ví dụ:

using System;
namespace DataType
{
    class IntExample
    {
        public static void Main(string[] args)
        {
            int score = 51092;
            Console.WriteLine(score);
        }
    }
}

Khi chúng tôi chạy chương trình, kết quả đầu ra sẽ là:

51092

4. dài

  • Size: 64 bits
  • Range: -263 to 263-1
  • Default value0L [L at the end represent the value is of long type]

Ví dụ:

using System;
namespace DataType
{
    class LongExample
    {
        public static void Main(string[] args)
        {
            long range = -7091821871L;
            Console.WriteLine(range);
        }
    }
}

Khi chúng tôi chạy chương trình, kết quả đầu ra sẽ là:

-7091821871

Tích phân không dấu

Các loại dữ liệu này chỉ chứa các giá trị bằng hoặc lớn hơn 0. Thông thường, chúng tôi sử dụng các loại dữ liệu này để lưu trữ các giá trị khi chúng tôi chắc chắn rằng, chúng tôi sẽ không có các giá trị âm.

1. byte

  • Size: 8 bits
  • Range: 0 to 255.
  • Default value: 0

Ví dụ:

using System;
namespace DataType
{
    class ByteExample
    {
        public static void Main(string[] args)
        {
            byte age = 62;
            Console.WriteLine(level);
        }
    }
}

Khi chúng tôi chạy chương trình, kết quả đầu ra sẽ là:

62

2. ushort

  • Size: 16 bits
  • Range: 0 to 65,535
  • Default value: 0

Ví dụ:

using System;
namespace DataType
{
    class UShortExample
    {
        public static void Main(string[] args)
        {
            ushort value = 42019;
            Console.WriteLine(value);
        }
    }
}

Khi chúng tôi chạy chương trình, kết quả đầu ra sẽ là:

42019

3. uint

  • Size: 32 bits
  • Range: 0 to 232-1
  • Default value: 0

Ví dụ:

using System;
namespace DataType
{
    class UIntExample
    {
        public static void Main(string[] args)
        {
            uint totalScore = 1151092;
            Console.WriteLine(totalScore);
        }
    }
}

Khi chúng tôi chạy chương trình, kết quả đầu ra sẽ là:

1151092

4. dài

  • Size: 64 bits
  • Range: 0 to 264-1
  • Default value: 0

Ví dụ:

using System;
namespace DataType
{
    class ULongExample
    {
        public static void Main(string[] args)
        {
            ulong range = 17091821871L;
            Console.WriteLine(range);
        }
    }
}

Khi chúng tôi chạy chương trình, kết quả đầu ra sẽ là:

17091821871

Dấu chấm động

Các kiểu dữ liệu này giữ các giá trị dấu phẩy động tức là các số có chứa giá trị thập phân. Ví dụ: 12,36, -92,17, v.v.

1. phao

  • Single-precision floating point type
  • Size: 32 bits
  • Range: 1.5 × 10−45 to 3.4 × 1038
  • Default value: 0.0F [F at the end represent the value is of float type]

Ví dụ:

using System;
namespace DataType
{
    class FloatExample
    {
        public static void Main(string[] args)
        {
            float number = 43.27F;
            Console.WriteLine(number);
        }
    }
}

Khi chúng tôi chạy chương trình, kết quả đầu ra sẽ là:

43.27

2. gấp đôi

  • Double-precision floating point type. What is the difference between single and double precision floating point?
  • Size: 64 bits
  • Range: 5.0 × 10−324 to 1.7 × 10308
  • Default value: 0.0D [D at the end represent the value is of double type]

Ví dụ:

using System;
namespace DataType
{
    class DoubleExample
    {
        public static void Main(string[] args)
        {
            double value = -11092.53D;
            Console.WriteLine(value);
        }
    }
}

Khi chúng tôi chạy chương trình, kết quả đầu ra sẽ là:

-11092.53

Ký tự (char)

  • It represents a 16 bit unicode character.
  • Size: 16 bits
  • Default value: ‘\0’
  • Range: U+0000 (‘\u0000’) to U+FFFF (‘\uffff’)

Ví dụ:

using System;
namespace DataType
{
    class CharExample
    {
        public static void Main(string[] args)
        {
            char ch1 ='\u0042';
            char ch2 = 'x';
            Console.WriteLine(ch1);
            Console.WriteLine(ch2);
        }
    }
}

Khi chúng tôi chạy chương trình, kết quả đầu ra sẽ là:

B
x

Giá trị unicode của 'B'là '\u0042', do đó in ch1 sẽ in 'B'.

Số thập phân

  • Decimal type has more precision and a smaller range as compared to floating point types (double and float). So it is appropriate for monetary calculations.
  • Size: 128 bits
  • Default value: 0.0M [M at the end represent the value is of decimal type]
  • Range: (-7.9 x 1028 to 7.9 x 1028) / (100 to 28)

Ví dụ:

using System;
namespace DataType
{
    class DecimalExample
    {
        public static void Main(string[] args)
        {
         decimal bankBalance = 53005.25M;
            Console.WriteLine(bankBalance);
        }
    }
}

Khi chúng tôi chạy chương trình, kết quả đầu ra sẽ là:

53005.25

Hậu tố Mhoặc mphải được thêm vào cuối, nếu không giá trị sẽ được coi là một kép và lỗi sẽ được tạo ra.

Chữ viết C #

Hãy xem xét tuyên bố sau:

int number = 41;

Đây,

  • int is a data type
  • number is a variable and
  • 41 is a literal

Chữ viết là các giá trị cố định xuất hiện trong chương trình. Chúng không yêu cầu bất kỳ tính toán nào. Ví dụ, 5false'w'là literals xuất hiện trong một chương trình trực tiếp mà không cần bất kỳ tính toán.


Boolean Literals

  • true and false are the available boolean literals.
  • They are used to initialize boolean variables.

Ví dụ:

bool isValid = true;
bool isPresent = false;

Chữ số nguyên

  • Integer literals are used to initialize variables of integer data types i.e. sbyteshortintlongbyteushortuint and ulong.
  • If an integer literal ends with L or l, it is of type long. For best practice use L (not l).long value1 = 4200910L; long value2 = -10928190L;
  • If an integer literal starts with a 0x, it represents hexadecimal value. Number with no prefixes are treated as decimal value. Octal and binary representation are not allowed in C#.int decimalValue = 25; int hexValue = 0x11c;// decimal value 284

Chữ viết dấu chấm động

  • Floating point literals are used to initialize variables of float and double data types.
  • If a floating point literal ends with a suffix f or F, it is of type float. Similarly, if it ends with d or D, it is of type double. If neither of the suffix is present, it is of type double by default.
  • These literals contains e or E when expressed in scientific notation.double number = 24.67;// double by default float value = -12.29F; double scientificNotation = 6.21e2;// equivalent to 6.21 x 102 i.e. 621

Ký tự ký tự và chuỗi ký tự

  • Character literals are used to initialize variables of char data types.
  • Character literals are enclosed in single quotes. For example, 'x', 'p', etc.
  • They can be represented as character, hexadecimal escape sequence, unicode representation or integral values casted to char.char ch1 = ‘R’;// character char ch2 = ‘\x0072’;// hexadecimal char ch3 = ‘\u0059’;// unicode char ch4 = (char)107;// casted from integer
  • String literals are the collection of character literals.
  • They are enclosed in double quotes. For example, “Hello”, “Easy Programming”, etc.string firstName = “Richard”; string lastName = ” Feynman”;
  • C# also supports escape sequence characters such as:
     CharacterMeaning\'Single quote\"Double quote\\Backslash\nNewline\rCarriage return\tHorizontal Tab\aAlert\bBackspace