Từ khóa Keyword và Identifier trong C#

By 07/07/2021Tháng Bảy 8th, 2021C#, KIẾN THỨC LẬP TRÌNH

Trong phần này, chúng ta sẽ tìm hiểu về định nghĩa, ý nghĩa của các từ khóa trong C# (C# keyword) và định danh (C# identifier) trong ngôn ngữ lập trình C#.

1. C# Keyword (Từ khóa trong C#)

Từ khóa trong C# là tập hợp các từ dành riêng có ý nghĩa đặc biệt trong chương trình. Ý nghĩa của các từ này không thể thay đổi và cũng không thể trực tiếp sử dụng như identifier trong một chương trình.

Ví dụ:

long mobileNum;

Ở dây, long là keyword và mobileNum là identifier.

long có một ý nghĩa đặc biệt trong ngôn ngữ lập trình C#. Nó được sử dụng để khai báo các biến thể của long và chức năng này không thể thay đổi.

Thêm nữa, những C# keyword như long, int, char, v..v.. không thể sử dụng như identifier. Vì vậy sẽ không có trường hợp như bên dưới xảy ra:

long long;

C# có tổng công 79 keyword. Những keyword này đều ở dạng chữ thường (không in hoa, in nghiêng,…). Bạn có thể xem danh sách từ khóa trong C# ở dưới đây:

abstract as base bool
break byte case catch
char checked class const
continue decimal default delegate
do double else enum
event explicit extern false
finally fixed float for
foreach goto if implicit
in in (generic modifier) int interface
internal is lock long
namespace new null object
operator out out (generic modifier) override
params private protected public
readonly ref return sbyte
sealed short sizeof stackalloc
static string struct switch
this throw true try
typeof uint ulong unchecked
unsafe ushort using using static
void volatile while

Mặc dù các keyword này là các từ dành riêng, chúng vẫn có thể được dùng như identifier nếu chúng ta thêm @ vào trước keyword, ví dụ như sau:

int @void;

Câu lệnh trên sẽ tạo ra biến thể @void theo kiểu int.

1.1 Từ khóa của C# theo ngữ cảnh

Bên cạnh những từ khoá bình thường, ngôn ngữ C# còn có 25 từ khoá theo ngữ cảnh như bên dưới.

Những C# keyword theo ngữ cảnh này có ý nghĩa cụ thể tuỳ thuộc vào ngữ cảnh chương trình (có hạn chế).

Chúng có thể được sử dụng như identifier bên ngoài ngữ cảnh (có hạn chế) đó.

Keyword theo ngữ cảnh không phải là từ dành riêng của C#.

add alias ascending
async await descending
dynamic from get
global group into
join let orderby
partial (loại) partial (phương thức) remove
select set value
var when (filter condition) where (hạn chế kiểu dữ liệu Generic)
yield

Nếu bạn muốn biết chi tiết hơn về chức năng của những từ khóa trên, bạn có thể tham khảo ở đây C# keyword (Đáng buồn là Microsoft chưa đưa ra bản tiếng Việt, tôi tin là họ sẽ đăng tải sớm thôi!)

2. C# Identifier (Định danh trong C#)

Định danh trong C# ( C# Identifier) là các thực thể như biến (variable), method, class,.. Chúng là các mã thông báo trong chương trình, dùng để xác định một phần tử duy nhất. Ví dụ:

int value;

Ở đây, value là tên của variable. Cũng có nghĩa nó là identifier. Như đã nói ở phía trên, các keyword dành riêng không thể sử dụng như identifier nếu nó không thêm @ vào trước keyword. Ví dụ:

int break;

Lệnh này sẽ tạo ra error trong thời gian biên dịch. Để tìm hiểu thêm về variable, hãy chuyển tới phần C# variable.

2.1 Quy tắc đặt tên định danh trong C#

  • Identifier không thể trùng lặp với từ khóa trong C#.
  • Identifier phải bắt đầu bằng một chữ cái, một dấu gạch dưới hoặc sử dụng ký hiệu @ .Phần còn lại của Identifier có thể chứa các chữ cái, chữ số hoặc ký hiệu gạch dưới.
  • Identifier không được phép chứa khoảng trắng. Nó cũng không được có các ký hiệu khác ngoài chữ cái, chữ số và dấu gạch dưới.
  • Identifiers có phân biệt chữ hoa và chữ thường. Vì vậy các identifier như getName, GetName và getname là ba identifier khác nhau.

Dưới đây là một số C# identifier hợp lệ (Valid) và không hợp lệ (invalid):

Identifiers Nhận xét
number Valid
calculateMarks Valid
hello$ Invalid (Chứa $)
name1 Valid
@if Valid (Keyword với tiền tố @)
if Invalid (C# Keyword)
My name Invalid (Chứa khoảng trắng)
_hello_hi Valid

3. Cách tìm danh sách keyword và identifier trong một chương trình

Để làm rõ khái niệm, hãy cùng tôi tìm danh sách keyword và identifier trong chương trình chúng ta đã viết trong phần C# Hello World.

using System;

namespace HelloWorld

{

class Hello

{

static void Main(string[] args)

{

Console.WriteLine(“Hello World!”);

}

}

}

Keywords Identifiers
using System
namespace HelloWorld (namespace)
class Hello (class)
static Main (method)
void args
string Console
WriteLine

Cụm từ “Hello World!”bên trong method  WriteLine là string literal.

Để lại một câu trả lời