Sửa lỗi use of unassigned local variable gt năm 2024

C# là một ngôn ngữ lập trình đa năng, hiện đại và là loại ngôn ngữ lập trình hướng đối tượng được phát âm là “C Sharp”. Nó được phát triển bởi Microsoft do Anders Hejlsberg và nhóm của ông đứng đầu trong sáng kiến ​​.NET và đã được Hiệp hội các nhà sản xuất máy tính Châu Âu (ECMA) và Tổ chức Tiêu chuẩn Quốc tế (ISO) phê duyệt. C# là một trong những ngôn ngữ dành cho cơ sở hạ tầng ngôn ngữ chung. C# rất giống với Java về mặt cú pháp và rất dễ dàng học và vận dụng đối với người dùng có kiến ​​thức về C, C ++ hoặc Java.

Show

Hiện nay, ngôn ngữ lập trình C# đã trở nên phổ cập và có thể sử dụng được cho nhiều ứng dụng khác nhau như: lập trình ứng dụng di động, phát triển trò chơi hay phát triển phần mềm doanh nghiệp. Trong công nghiệp, ngôn ngữ C# được sử dụng trong các ứng dụng lập trình nhúng, lập trình cho các bộ điều khiển (PLC, RTU, PAC,..) hay lập trình cho các phần mềm công nghiệp. Biết C# mở ra cho bạn rất nhiều cánh cửa lớn khi bạn xác định là một nhà phát triển, một lập trình viên trong tương lai.

Học phải đi đôi với hành, một mớ lý thuyết sẽ khiến bạn chán ngấy, khó hiểu, khó nhớ, khó đủ đường và sẽ làm bạn dễ dàng bỏ cuộc. Vậy chúng ta hãy bắt tay vào vừa học vừa thực hành ngay từ những thứ cơ bản (tạo chương trình Hello World đầu tiên) cho đến những kiến thức nâng cao nhé!

Mục lục

Hello World

Write Line

Console.WriteLine("Hello, world!"); // Prints: Hello, world!

Cú pháp

string str2 = "This is C# Program xsdd_$#%"; // string converted to Upper case string upperstr2 = str2.ToUpper(); //upperstr2 contains "THIS IS C# PROGRAM XSDD_$#%"

0 được sử dụng để viết, in “text – văn bản” trong bảng điều khiển. Nó cũng có thể được sử dụng để in các kiểu dữ liệu và giá trị khác được lưu trữ trong các biến.

Read Line

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

Cú pháp

string str2 = "This is C# Program xsdd_$#%"; // string converted to Upper case string upperstr2 = str2.ToUpper(); //upperstr2 contains "THIS IS C# PROGRAM XSDD_$#%"

1 được sử dụng để lấy thông tin đầu vào của người dùng. Đầu vào của người dùng có thể được lưu trữ trong một biến. Cú pháp này cũng có thể được sử dụng để nhắc người dùng nhấn ENTER trên bàn phím.

Comments

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

Chú thích (“nhận xét”, “bình luận”) là các đoạn văn bản không được thực thi. Những dòng này có thể được sử dụng nhằm để lại ghi chú với mục đích tăng tính dễ đọc cho chương trình.

  • Ghi chú dòng đơn được tạo với hai dấu gạch chéo về phía trước string str2 = "This is C# Program xsdd_$#%"; // string converted to Upper case string upperstr2 = str2.ToUpper(); //upperstr2 contains "THIS IS C# PROGRAM XSDD_$#%" 2.
  • Ghi chú nhiều dòng được tạo bắt đầu với string str2 = "This is C# Program xsdd_$#%"; // string converted to Upper case string upperstr2 = str2.ToUpper(); //upperstr2 contains "THIS IS C# PROGRAM XSDD_$#%" 3 và kết thúc với string str2 = "This is C# Program xsdd_$#%"; // string converted to Upper case string upperstr2 = str2.ToUpper(); //upperstr2 contains "THIS IS C# PROGRAM XSDD_$#%" 4. Nó rất hữu ích cho việc ghi chú các khối mã lớn.

.NET Platform

.NET là một mã nguồn mở, miễn phí, đa nền tảng, được các nhà phát triển sử dụng để xây dựng nhiều ứng dụng khác nhau.

Với .NET, bạn có thể sử dụng đa ngôn ngữ, trình chỉnh sửa và các thư viện có sẵn để xây dựng ứng dụng cho web, thiết bị di động, máy tính PC, trò chơi hay IoT. Cho dù bạn đang sử dụng ngôn ngữ C#, F# hay Visual Basic để làm việc thì code của bạn sẽ chạy nguyên bản trên bất kỳ hệ điều hành nào tương thích với nền tảng .NET và sẽ giúp bạn xử lý các công việc nặng nhọc một cách dễ dàng hơn.

Biến và kiểu dữ liệu trong C#

Write Line

Console.WriteLine("Hello, world!"); // Prints: Hello, world!

Cú pháp

string str2 = "This is C# Program xsdd_$#%"; // string converted to Upper case string upperstr2 = str2.ToUpper(); //upperstr2 contains "THIS IS C# PROGRAM XSDD_$#%"

0 được sử dụng để viết, in “text – văn bản” trong bảng điều khiển. Nó cũng có thể được sử dụng để in các kiểu dữ liệu và giá trị khác được lưu trữ trong các biến.

Biến và loại biến trong C#

string foo = "Hello"; string bar = "How are you?"; int x = 5; Console.WriteLine(foo); // Prints: Hello

Trong ngôn ngữ lập trình C# (C Sharp), một biến là một cách để lưu trữ dữ liệu trong bộ nhớ của máy tính để được sử dụng sau này (tái sử dụng) trong chương trình. C# là một ngôn ngữ tường minh, nghĩa là khi các biến được khai báo thì cần phải xác định kiểu dữ liệu của chúng..

Việc khai báo các loại biến cho phép trình biên dịch dừng chương trình đang chạy khi các biến được sử dụng sai, tức là một lệnh

string str2 = "This is C# Program xsdd_$#%"; // string converted to Upper case string upperstr2 = str2.ToUpper(); //upperstr2 contains "THIS IS C# PROGRAM XSDD_$#%"

6 được sử dụng thì cần sử dụng một

string str2 = "This is C# Program xsdd_$#%"; // string converted to Upper case string upperstr2 = str2.ToUpper(); //upperstr2 contains "THIS IS C# PROGRAM XSDD_$#%"

7 hoặc ngược lại..

Toán tử số học

int result; result = 10 + 5; // 15 result = 10 - 5; // 5 result = 10 * 5; // 50 result = 10 / 5; // 2 result = 10 % 5; // 0

Toán tử số học được sử dụng để sửa đổi các giá trị số:

  • string str2 = "This is C# Program xsdd_$#%"; // string converted to Upper case string upperstr2 = str2.ToUpper(); //upperstr2 contains "THIS IS C# PROGRAM XSDD_$#%" 8 cộng toán tử
  • string str2 = "This is C# Program xsdd_$#%"; // string converted to Upper case string upperstr2 = str2.ToUpper(); //upperstr2 contains "THIS IS C# PROGRAM XSDD_$#%" 9 trừ toán tử
  • string mixedCase = "This is a MIXED case string."; // Call ToLower instance method, which returns a new copy. string lower = mixedCase.ToLower(); //variable lower contains "this is a mixed case string." 0 nhân toán tử
  • string mixedCase = "This is a MIXED case string."; // Call ToLower instance method, which returns a new copy. string lower = mixedCase.ToLower(); //variable lower contains "this is a mixed case string." 1 chia toán tử
  • string mixedCase = "This is a MIXED case string."; // Call ToLower instance method, which returns a new copy. string lower = mixedCase.ToLower(); //variable lower contains "this is a mixed case string." 2 toán tử modulo (trả lại phần còn lại)

Kết hợp toán tử (Unary Operator)

int a = 10; a++; Console.WriteLine(a); // Prints: 11

Các toán tử có thể được kết hợp để tạo ra các câu lệnh ngắn hơn nhằm sửa đổi các biến hiện có nhanh chóng hơn. Hai ví dụ phổ biến:

  • string mixedCase = "This is a MIXED case string."; // Call ToLower instance method, which returns a new copy. string lower = mixedCase.ToLower(); //variable lower contains "this is a mixed case string." 3 tăng một giá trị toán tử.
  • string mixedCase = "This is a MIXED case string."; // Call ToLower instance method, which returns a new copy. string lower = mixedCase.ToLower(); //variable lower contains "this is a mixed case string." 4 giảm một giá trị toán tử.

Tìm căn bậc 2 trong C#

// Input positive value, Output square root of x Console.Write(Math.Sqrt(x)); //OUTPUT: 9

Trong ngôn ngữ lập trình C#,

string mixedCase = "This is a MIXED case string."; // Call ToLower instance method, which returns a new copy. string lower = mixedCase.ToLower(); //variable lower contains "this is a mixed case string."

5 là hàm được sử dụng để tính căn bậc 2 của giá trị được chỉ định.

.toUpper() trong C#

string str2 = "This is C# Program xsdd_$#%"; // string converted to Upper case string upperstr2 = str2.ToUpper(); //upperstr2 contains "THIS IS C# PROGRAM XSDD_$#%"

Trong C#,

string mixedCase = "This is a MIXED case string."; // Call ToLower instance method, which returns a new copy. string lower = mixedCase.ToLower(); //variable lower contains "this is a mixed case string."

6 được sử dụng để chuyển đổi mọi ký tự trong chuỗi thành chữ hoa. Nếu một ký tự không có chữ hoa tương đương thì nó sẽ không thay đổi. Ví dụ, các ký hiệu đặc biệt không thay đổi.

.ToLower() trong C#

string mixedCase = "This is a MIXED case string."; // Call ToLower instance method, which returns a new copy. string lower = mixedCase.ToLower(); //variable lower contains "this is a mixed case string."

Trong C#,

string mixedCase = "This is a MIXED case string."; // Call ToLower instance method, which returns a new copy. string lower = mixedCase.ToLower(); //variable lower contains "this is a mixed case string."

7 được sử dụng để chuyển đổi mọi ký tự trong chuỗi thành chữ thường. Nếu một ký tự không có chữ thường tương đương thì nó sẽ không thay đổi. Ví dụ, các ký hiệu đặc biệt không thay đổi.

Độ dài chuỗi (String Length) trong C#

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

0

Trong hàm

string str2 = "This is C# Program xsdd_$#%"; // string converted to Upper case string upperstr2 = str2.ToUpper(); //upperstr2 contains "THIS IS C# PROGRAM XSDD_$#%"

7 có lớp thuộc tính Length, thuộc tính này trả về số ký tự trong chuỗi.

IndexOf() trong C#

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

1

Trrong C#,

string mixedCase = "This is a MIXED case string."; // Call ToLower instance method, which returns a new copy. string lower = mixedCase.ToLower(); //variable lower contains "this is a mixed case string."

9 được sử dụng để tìm vị trí chỉ mục của một ký tự được chỉ định trong một chuỗi. Kết quả trả về -1 nếu không tìm thấy ký tự.

Substring() trong C#

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

2

Trong ngôn ngữ lập trình C# (C Sharp),

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

00 được sử dụng để truy xuất một phần của chuỗi trong khi vẫn giữ nguyên dữ liệu gốc. Chuỗi con mà bạn truy xuất có thể được lưu trữ trong một biến để sử dụng ở những nơi khác trong chương trình của bạn.

Ký hiệu dấu ngoặc []

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

3

Chuỗi chứa các ký tự. Một cách có thể truy vấn được các giá trị

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

01 này là bằng ký hiệu dấu ngoặc […]. Thậm chí có thể lưu trữ các ký tự này trong các biến riêng biệt.

Truy cập một ký tự cụ thể bằng cách sử dụng dấu ngoặc vuông […] trên chuỗi, đặt vị trí chỉ mục của ký tự mong muốn giữa các dấu ngoặc. Ví dụ, để lấy ký tự đầu tiên, bạn có thể chỉ định là

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

02. Để lấy ký tự cuối cùng, bạn lấy độ dài của chuỗi trừ đi một ký tự .

Read Line

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

4

Lệnh

string str2 = "This is C# Program xsdd_$#%"; // string converted to Upper case string upperstr2 = str2.ToUpper(); //upperstr2 contains "THIS IS C# PROGRAM XSDD_$#%"

1 được sử dụng để lấy thông tin đầu vào của người dùng. Đầu vào của người dùng có thể được lưu trữ trong một biến. Cú pháp này cũng có thể được sử dụng để nhắc người dùng nhấn ENTER trên bàn phím.

Bình luận trong C#

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

5

Chú thích (“nhận xét”, “bình luận”) là các đoạn văn bản không được thực thi. Những dòng này có thể được sử dụng nhằm để lại ghi chú với mục đích tăng tính dễ đọc cho chương trình.

  • Ghi chú dòng đơn được tạo với hai dấu gạch chéo về phía trước string str2 = "This is C# Program xsdd_$#%"; // string converted to Upper case string upperstr2 = str2.ToUpper(); //upperstr2 contains "THIS IS C# PROGRAM XSDD_$#%" 2.
  • Ghi chú nhiều dòng được tạo bắt đầu với string str2 = "This is C# Program xsdd_$#%"; // string converted to Upper case string upperstr2 = str2.ToUpper(); //upperstr2 contains "THIS IS C# PROGRAM XSDD_$#%" 3 và kết thúc với string str2 = "This is C# Program xsdd_$#%"; // string converted to Upper case string upperstr2 = str2.ToUpper(); //upperstr2 contains "THIS IS C# PROGRAM XSDD_$#%" 4. Nó rất hữu ích cho việc ghi chú các khối mã lớn.

Logic và Điều kiện

Bảng Logic (Truth Table)

Bảng Logic là một cách để dễ dàng hình dung logic boolean. Vì boolean chỉ có hai giá trị khả dụng, điều đó có nghĩa là chúng ta có thể liệt kê một cách gọn gàng trong bảng tất cả các cặp đầu vào và đầu ra có thể xảy ra cho toán tử boolean đơn phân và nhị phân.

Hình ảnh dưới đây thể hiện Bảng Logic cho các toán tử NOT, AND, NAND, OR, NOR, XOR và XNOR. Đối với mỗi hàng, cột cuối cùng đại diện cho đầu ra và các cột khác là đầu vào cho toán tử tương ứng.

Sửa lỗi use of unassigned local variable gt năm 2024

Kiểu Boolean

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

6

Cú pháp

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

07 trả về kiểu dữ liệu

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

08 hoặc

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

09 và sẽ dựa trên tính hợp lệ của tất cả các câu lệnh logic phải là đúng hoặc sai.

Mã hóa Boolean vào máy tính, cho phép tự suy luận logic trong các chương trình. Hiểu theo nghĩa rộng, máy tính có thể mã hóa tính trung thực hay sai lệch của một dữ liệu được chỉ định và dựa trên thông tin đó, hoàn toàn thay đổi hoạt động của chương trình.

Biểu thức Boolean

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

7

Biểu thức boolean là những biểu thức bất kỳ nào được đánh giá hoặc trả về giá trị boolean.

Toán tử so sánh trong C#

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

8

Một toán tử so sánh, như tên của nó, so sánh hai biểu thức và trả về

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

08 hoặc

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

09 tùy thuộc vào kết quả của phép so sánh. Ví dụ: nếu chúng ta so sánh hai giá trị

string str2 = "This is C# Program xsdd_$#%"; // string converted to Upper case string upperstr2 = str2.ToUpper(); //upperstr2 contains "THIS IS C# PROGRAM XSDD_$#%"

6, chúng ta có thể kiểm tra xem một số có lớn hơn số kia hay không hoặc cả hai số đều bằng nhau. Tương tự, chúng ta có thể kiểm tra một

string str2 = "This is C# Program xsdd_$#%"; // string converted to Upper case string upperstr2 = str2.ToUpper(); //upperstr2 contains "THIS IS C# PROGRAM XSDD_$#%"

7 có bằng nhau với một

string str2 = "This is C# Program xsdd_$#%"; // string converted to Upper case string upperstr2 = str2.ToUpper(); //upperstr2 contains "THIS IS C# PROGRAM XSDD_$#%"

7 khác không.

Toán tử Logic trong C#

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

9

Toán tử logic nhận biểu thức boolean làm đầu vào và trả về giá trị boolean.

Toán tử

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

15 nhận 2 biểu thức boolean và chỉ trả về giá trị

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

08 nếu cả 2 đều được đánh giá là

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

08.

Toán tử

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

18 nhận 2 biểu thức boolean và trả về giá trị là

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

08 nếu 1 trong 2 biểu thức được đánh giá là

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

08.

Toán tử

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

21 nhận 1 biểu thức boolean và trả về giá trị ngược lại.

Luồng điều khiển (Control Flow)

Trong lập trình, luồng điều khiển là thứ tự thực hiện các câu lệnh và lệnh. Người lập trình có thể thay đổi luồng điều khiển của chương trình bằng cách sử dụng các cấu trúc điều khiển có điều kiện.

Khả năng thay đổi quy trình và kiểm soát của chương trình rất mạnh mẽ vì nó cho phép chúng ta điều chỉnh hoạt động của chương trình đang chạy tùy thuộc vào trạng thái của chương trình. Ví dụ: giả sử một người dùng đang sử dụng ứng dụng ngân hàng và muốn rút 1.000.000 VND. Chúng ta chắc chắn muốn ứng dụng hoạt động với các cơ chế khác nhau tùy thuộc vào việc người dùng có 20.000 VND hay 50.000.000 VND trong tài khoản ngân hàng của họ!

Điều khiển có điều kiện (Conditional Control)

Câu lệnh điều kiện hoặc cấu trúc điều khiển có điều kiện cho phép một chương trình có các hành động khác nhau tùy thuộc vào các điều kiện nhất định được đáp ứng.

Về mặt trực quan, điều này bắt chước cách con người đưa ra các quyết định và hành động theo chúng. Ví dụ, lý luận về việc đi ra ngoài có thể như sau:

  • Điều kiện: bên ngoài trời có mưa không?
    • Nếu trời đang mưa, hãy mang theo ô.
    • Nếu trời không mưa, thì không mang theo ô.

Chúng ta có thể tiếp tục thêm các mệnh đề để làm cho lập luận trở nên phức tạp hơn, chẳng hạn như “Nếu trời nắng thì hãy bôi kem chống nắng”.

Câu lệnh If (nếu-thì) trong C#

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

0

Trong ngôn ngữ lập trình C # (C Sharp), câu lệnh if thực thi một chức năng dựa trên việc biểu thức boolean được cung cấp trong dấu ngoặc đơn có “phải” hay “không” <=>

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

08 hay

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

09.

Nếu là “phải” tức là

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

08 thì sẽ thực hiện tiếp các mã, khối lệnh trong dấu ngoặc

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

25, nếu “không” thì sẽ bỏ qua.

Câu lệnh Else (không thì) trong C#

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

1

Một lệnh

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

26 theo sau sẽ là dấu ngoặc

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

25 chứa một khối mã lệnh. Trước lệnh

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

26 thì phải có mệnh đề khác đặt trước câu lệnh

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

29 .

Khối bên trong dấu ngoặc của lệnh

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

26 chỉ được thực hiện khi điều kiện của câu lệnh

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

29 là

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

09. Tức là khối mã lệnh trong câu lệnh

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

29 không được thực thi thì khi đó mới đến khối mã lệnh trong câu lệnh

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

26.

If và Else If (nếu-nếu không thì) trong C#

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

2

Một mã câu lệnh phổ biến khi viết nhiều câu lệnh

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

29 và

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

26 là có một khối lệnh

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

26 được lồng câu lệnh

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

29, và có thể chứa thêm lệnh

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

26 khác, etc. Một cách tốt hơn để thể hiện những chức năng này trong C# là sử dụng lệnh

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

40 . Điều kiện đầu tiên được đánh giá là

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

08 thì sẽ chạy khối mã được liên kết của nó. Nếu được đánh giá là

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

09, thì các khối mã lệnh

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

26 sẽ được chạy (nếu tồn tại).

Lệnh Switch trong C#

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

3

Lệnh

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

44 là một cấu trúc luồng điều khiển đánh giá một biểu thức và quyết định khối mã nào sẽ chạy bằng cách xét độ khớp kết quả của biểu thức với từng trường hợp

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

45. Nói chung, một khối mã được thực thi khi giá trị cho

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

45 bằng với biểu thức được đánh giá, tức là khi sử dụng toán tử so sánh

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

47 giữa hai giá trị trả về

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

08. Lệnh

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

44 thường được dùng để thay thế cho cấu trúc lệnh

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

50 khi điều kiện kiểm tra đều là sự so sánh bằng hay không bằng một giá trị.

Lệnh ngắt (Break) trong C#

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

4

Một trong những công dụng của lệnh

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

51 trong C# là để thoát ra khỏi khối lệnh

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

44/

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

45 và sau đó tiếp tục thực thi các chương trình sau khối mã lệnh

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

44 . Trong C#, mỗi khối mã

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

45 trong một câu lệnh

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

44 cần được thoát ra bằng lệnh

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

51 (hoặc bằng một số câu lệnh jump khác), nếu không thì chương trình sẽ không thể biên dịch. Nó sẽ được gọi ra sau khi tất cả các chương trình cụ thể trong

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

45 đã được thực thi.

Toán tử bậc 3 (Ternary Operator)

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

5

Trong C #, toán tử bậc ba là một cú pháp đặc biệt có dạng:

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

59.

Nó nhận một điều kiện boolean và hai biểu thức làm đầu vào. Không giống như câu lệnh

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

29 statement, toán tử bậc ba tự nó là một biểu thức. Nó đánh giá biểu thức đầu vào đầu tiên hoặc biểu thức đầu vào thứ hai tùy thuộc vào điều kiện tương ứng là đúng hay sai tức là

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

08 hay

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

09.

Phương thức (Methods)

Phương thức bên trong các biến

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

6

Không thể sử dụng các tham số và biến được khai báo bên trong một phương thức bên ngoài phần thân của phương thức. Cố gắng làm như vậy sẽ gây ra lỗi khi biên dịch chương trình!

Các tham số tùy chọn trong C#

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

7

Trong C #, các phương thức có thể được cung cấp các tham số tùy chọn. Một tham số là tùy chọn nếu khai báo của nó chỉ định một đối số mặc định. Các phương thức với một tham số tùy chọn có thể được gọi có hoặc không có truyền vào một đối số cho tham số đó. Nếu một phương thức được gọi mà không truyền đối số cho tham số tùy chọn, thì tham số được khởi tạo với giá trị mặc định của nó.

Để xác định một tham số tùy chọn, hãy sử dụng dấu bằng sau phần khai báo tham số, theo sau là giá trị mặc định của nó.

Lệnh trả về (Return) trong C#

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

8

Trong C #, câu lệnh

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

63 có thể được sử dụng để trả về một giá trị từ một phương thức và trở lại trình gọi của phương thức đó.

Khi lệnh

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

63 được gọi, phương thức hiện tại kết thúc và sẽ điều khiển được trả về nơi phương thức ban đầu được gọi. Giá trị được phương thức trả về phải khớp với kiểu trả về của phương thức, được chỉ định trong khai báo phương thức.

Kiểu trả về Void (Void Return Type)

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

9

Trong C #, các phương thức không

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

63 một giá trị có một kiểu trả về

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

66.

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

66 không phải là một kiểu dữ liệu thực tế như

string str2 = "This is C# Program xsdd_$#%"; // string converted to Upper case string upperstr2 = str2.ToUpper(); //upperstr2 contains "THIS IS C# PROGRAM XSDD_$#%"

6 hay

string str2 = "This is C# Program xsdd_$#%"; // string converted to Upper case string upperstr2 = str2.ToUpper(); //upperstr2 contains "THIS IS C# PROGRAM XSDD_$#%"

7, vì nó đại diện cho việc thiếu đầu ra hoặc giá trị.

Tham số Out

Console.WriteLine("Hello, world!"); // Prints: Hello, world!

0

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

63 chỉ có thể trả về một giá trị. Khi cần nhiều giá trị thì có thể sử dụng tham số

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

71.

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

72

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

71 được bắt đầu bằng

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

71 trong tiêu đề phương thức. Khi được gọi, đối số cho mỗi tham số

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

71 phải là một biến có tiền tố

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

71.

Tham số

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

71 số trở thành bí danh (tên thứ 2) cho các biến được chuyển vào. Vì vậy, chúng ta có thể gán giá trị cho các tham số và chúng sẽ tồn tại trên các biến mà chúng ta đã truyền vào sau khi phương thức kết thúc.

Khai báo phương thức

Console.WriteLine("Hello, world!"); // Prints: Hello, world!

1

Trong C #, một khai báo phương thức, còn được gọi là tiêu đề phương thức, bao gồm mọi thứ về phương thức ngoài phần thân của phương thức. Khai báo phương thức bao gồm:

  • tên phương thức
  • kiểu tham số
  • thứ tự tham số
  • tên tham số
  • kiểu trả về
  • bổ ngữ tùy chọn

Khai báo phương thức thường thấy là khai báo cho phương thức

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

78 (có thể khai báo nhiều

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

78):

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

80

Phần thân của phương thức

Console.WriteLine("Hello, world!"); // Prints: Hello, world!

2

Trong C #, thân phương thức là các biểu thức ngắn được viết bằng một cú pháp ngắn gọn đặc biệt. Một phương thức chỉ có thể được viết ở dạng thân biểu thức khi thân phương thức bao gồm một câu lệnh hoặc biểu thức duy nhất. Nếu phần thân là một biểu thức đơn lẻ, thì biểu thức đó được sử dụng làm giá trị trả về của phương thức.

Cú pháp chung là

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

81. Lưu ý cách ký hiệu

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

82, được sử dụng thay cho dấu ngoặc nhọn. Cũng lưu ý rằng lệnh

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

63 là không cần thiết, vì biểu thức được trả về ngầm định.

Biểu thức Lambda

Console.WriteLine("Hello, world!"); // Prints: Hello, world!

3

Biểu thức lambda là một khối mã được xử lý giống như bất kỳ giá trị hoặc biểu thức nào khác. Nó có thể được truyền vào các phương thức, được lưu trữ trong các biến và được tạo ra bên trong các phương thức.

Đặc biệt, các biểu thức lambda rất hữu ích để tạo các phương thức ẩn danh, các phương thức không có tên, để được truyền vào các phương thức yêu cầu đối số phương thức. Cú pháp ngắn gọn của chúng thanh lịch hơn so với khai báo một phương thức thông thường khi chúng được sử dụng như một đối số phương thức riêng lẻ.

Biểu thức Lambda ngắn gọn (Shorter Lambda)

Console.WriteLine("Hello, world!"); // Prints: Hello, world!

4

Có nhiều cách để rút ngắn cú pháp biểu thức lambda cho ngắn gọn.

  • Kiểu tham số có thể được loại bỏ nếu nó có thể được suy ra.
  • Dấu ngoặc đơn có thể được loại bỏ nếu chỉ có một tham số.

Lưu ý thêm, các quy tắc thông thường cho các phương thức thể hiện biểu thức cũng áp dụng cho biểu thức lambda.

Mảng và vòng lặp (Arrays & Loops)

Mảng (Arrays) trong C#

Console.WriteLine("Hello, world!"); // Prints: Hello, world!

5

Trong C #, một mảng là một cấu trúc đại diện cho một tập hợp các giá trị hoặc đối tượng có cùng kiểu theo thứ tự có độ dài cố định.

Mảng giúp dễ dàng tổ chức và vận hành trên một lượng lớn dữ liệu. Ví dụ: thay vì tạo 100 biến số nguyên, bạn chỉ cần tạo một mảng lưu trữ tất cả các số nguyên đó!

Khai báo mảng trong C#

Console.WriteLine("Hello, world!"); // Prints: Hello, world!

6

Biến mảng trong C # được khai báo tương tự như một biến không phải là mảng, với việc bổ sung dấu ngoặc vuông (

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

  1. sau mã lệnh định dạng kiểu để biểu thị nó là một mảng.

Lệnh

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

85 được sử dụng khi khởi tạo một mảng mới để gán cho biến, cũng như độ dài mảng trong dấu ngoặc vuông. Mảng cũng có thể được khởi tạo bằng các giá trị bằng dấu ngoặc nhọn (

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

25). Trong trường hợp này, độ dài mảng là không cần thiết.

Khai báo và khởi tạo mảng cùng một lúc

Console.WriteLine("Hello, world!"); // Prints: Hello, world!

7

Trong C #, một cách được sử dụng để một mảng có thể được khai báo và khởi tạo cùng một lúc là gán mảng mới khai báo vào danh sách các giá trị được phân tách bằng dấu phẩy bao quanh bởi dấu ngoặc nhọn (

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

25). Lưu ý cách chúng ta có thể bỏ qua kiểu định dạng và từ

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

85 ở phía bên phải của bài tập khi sử dụng cú pháp này. Điều này chỉ có thể thực hiện được trong khi khai báo mảng.

Truy cập phần tử mảng

Console.WriteLine("Hello, world!"); // Prints: Hello, world!

8

Trong ngôn ngữ lập trình C# (C Sharp), các phần tử của một mảng được gắn nhãn tăng dần, bắt đầu từ 0 cho phần tử đầu tiên. Ví dụ: phần tử thứ 3 của một mảng sẽ được lập chỉ mục ở số 2 và phần tử thứ 6 của mảng sẽ được lập chỉ mục ở số 5 của mảng.

Một phần tử cụ thể có thể được truy cập bằng cách sử dụng toán tử dấu ngoặc vuông, bao quanh chỉ mục bằng dấu ngoặc vuông. Sau khi được truy cập, phần tử có thể được sử dụng trong một biểu thức hoặc được sửa đổi như một biến thông thường.

Độ dài mảng (Array Length) trong C#

Console.WriteLine("Hello, world!"); // Prints: Hello, world!

9

Thuộc tính Length của một mảng C # có thể được sử dụng để lấy số phần tử trong một mảng cụ thể.

Vòng lặp For trong C#

string foo = "Hello"; string bar = "How are you?"; int x = 5; Console.WriteLine(foo); // Prints: Hello

0

Vòng lặp for trong C# dùng thực hiện một tập hợp các lệnh cho một số lần xác định, dựa trên ba biểu thức được cung cấp. Ba biểu thức được phân tách bằng dấu chấm phẩy và theo thứ tự là:

  • Khởi tạo: Điều này được chạy chính xác một lần khi bắt đầu vòng lặp, thường được sử dụng để khởi tạo biến cho biến lặp của vòng lặp.
  • Điều kiện dừng: Biểu thức boolean này được kiểm tra trước mỗi lần lặp để xem nó có chạy tiếp hay không.
  • Câu lệnh lặp: Được thực hiện sau mỗi lần lặp của vòng lặp, thường được sử dụng để cập nhật biến trình lặp.

Vòng lặp For Each trong C#

string foo = "Hello"; string bar = "How are you?"; int x = 5; Console.WriteLine(foo); // Prints: Hello

1

Một vòng lặp

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

89trong C # dùng để chạy một tập hợp các lệnh một lần cho mỗi phần tử trong một tập hợp nhất định. Ví dụ: nếu một mảng có 200 phần tử, thì phần thân của vòng lặp

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

89 sẽ thực thi 200 lần. Khi bắt đầu mỗi lần lặp, một biến được khởi tạo cho phần tử hiện tại đang được xử lý.

Nó được khai báo bằng lệnh

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

89. Tiếp theo, trong dấu ngoặc đơn, một loại biến và tên biến theo sau là từ

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

92 và tập hợp để lặp lại.

Vòng lặp While trong C#

string foo = "Hello"; string bar = "How are you?"; int x = 5; Console.WriteLine(foo); // Prints: Hello

2

Trong C #, vòng lặp while thực thi một tập hợp các lệnh liên tục trong khi biểu thức boolean đã cho đánh giá là

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

08 hoặc một trong các lệnh bên trong thân vòng lặp, chẳng hạn như lệnh

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

51 kết thúc vòng lặp.

Lưu ý rằng phần thân của vòng lặp có thể hoàn toàn không chạy, vì điều kiện boolean được đánh giá trước lần lặp đầu tiên của vòng lặp while.

Cú pháp khai báo vòng lặp while đơn giản là từ

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

95 theo sau là điều kiện boolean trong ngoặc đơn.

Vòng lặp Do While trong C#

string foo = "Hello"; string bar = "How are you?"; int x = 5; Console.WriteLine(foo); // Prints: Hello

3

Trong C #, vòng lặp do while chạy một tập các lệnh một lần và sau đó tiếp tục chạy miễn là điều kiện boolean đã cho là

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

08. Lưu ý rằng quá trình này gần giống với vòng lặp while, với điểm khác biệt là do while chạy một hoặc nhiều lần và vòng lặp while không chạy hoặc chạy nhiều lần.

Cú pháp khai báo do while là từ

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

97 tiếp theo là khối mã, sau đó là từ

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

95 với điều kiện boolean trong ngoặc đơn. Lưu ý rằng dấu chấm phẩy là cần thiết để kết thúc vòng lặp do while.

Vòng lặp vô hạn trong C#

string foo = "Hello"; string bar = "How are you?"; int x = 5; Console.WriteLine(foo); // Prints: Hello

4

Vòng lặp vô hạn là vòng lặp không bao giờ kết thúc vì điều kiện dừng của nó luôn

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

09. Một vòng lặp vô hạn có thể hữu ích nếu một chương trình bao gồm liên tục thực thi một đoạn mã. Tuy nhiên, một vòng lặp vô hạn không chủ ý có thể khiến một chương trình bị treo và không phản hồi do bị mắc kẹt trong vòng lặp.

Một chương trình đang chạy trong một trình bao hoặc thiết bị đầu cuối bị mắc kẹt trong một vòng lặp vô hạn có thể được kết thúc bằng cách chấm dứt quá trình.

Lệnh Jump trong C#

string foo = "Hello"; string bar = "How are you?"; int x = 5; Console.WriteLine(foo); // Prints: Hello

5

Câu lệnh nhảy được sử dụng để cung cấp cho lập trình viên quyền kiểm soát bổ sung đối với luồng điều khiển của chương trình. Chúng rất thường được sử dụng trong ngữ cảnh của các vòng lặp để thoát khỏi vòng lặp hoặc để bỏ qua các phần của vòng lặp.

Các lệnh kiểm soát luồng bao gồm

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

51,

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

01, và

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

63.

Lớp và đối tường (Class & Object)

Class trong C#

string foo = "Hello"; string bar = "How are you?"; int x = 5; Console.WriteLine(foo); // Prints: Hello

6

Trong C #, các lớp được sử dụng để tạo các kiểu tùy chỉnh. Lớp định nghĩa các loại thông tin và phương thức có trong một loại tùy chỉnh.

Thành viên (Member) trong C#

string foo = "Hello"; string bar = "How are you?"; int x = 5; Console.WriteLine(foo); // Prints: Hello

7

Trong ngôn ngữ lập trình C# (C Sharp), một lớp (class) chứa các thành viên (member), xác định loại dữ liệu được lưu trữ trong một lớp và các hành động mà một lớp có thể thực hiện.

Ký hiệu dấu chấm “.” trong C#

string foo = "Hello"; string bar = "How are you?"; int x = 5; Console.WriteLine(foo); // Prints: Hello

8

Trong C #, một thành viên của một lớp có thể được truy vấn bằng ký hiệu dấu chấm.

Class Instance trong C#

string foo = "Hello"; string bar = "How are you?"; int x = 5; Console.WriteLine(foo); // Prints: Hello

9

Trong C #, một đối tượng là Instance của một lớp. Một đối tượng có thể được tạo từ một lớp bằng cách sử dụng từ

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

85 .

Field trong C#

int result; result = 10 + 5; // 15 result = 10 - 5; // 5 result = 10 * 5; // 50 result = 10 / 5; // 2 result = 10 % 5; // 0

0

Trong C #, một trường (field) lưu trữ một phần dữ liệu trong một đối tượng. Nó hoạt động giống như một biến và có thể có một giá trị khác nhau cho mỗi trường hợp của một kiểu.

Một field có thể được sử dụng bởi các lệnh:

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

04,

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

05,

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

06, và

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

07. Nếu không có lệnh nào truy vấn, một field được mặc định là

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

05 .

Thuộc tính (Property) trong C#

int result; result = 10 + 5; // 15 result = 10 - 5; // 5 result = 10 * 5; // 50 result = 10 / 5; // 2 result = 10 % 5; // 0

1

Trong C #, thuộc tính là một thành viên của đối tượng kiểm soát cách một trường có thể được truy cập và / hoặc sửa đổi. Thuộc tính xác định hai phương thức: phương thức

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

09 mô tả cách một trường có thể được truy cập và phương thức

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

10 mô tả cách một trường có thể được sửa đổi.

Một trường hợp sử dụng cho thuộc tính là kiểm soát quyền truy cập vào một trường. Cách khác là xác thực các giá trị cho một trường.

Triển khai thuộc tính tự động trong C#

int result; result = 10 + 5; // 15 result = 10 - 5; // 5 result = 10 * 5; // 50 result = 10 / 5; // 2 result = 10 % 5; // 0

2

Trong C #, một thuộc tính được triển khai tự động đọc và ghi vào một trường riêng, giống như các thuộc tính khác, nhưng nó không yêu cầu định nghĩa rõ ràng cho các phương thức của trình truy cập cũng như trường. Nó được sử dụng với cú pháp

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

11 . Điều này giúp mã của bạn trở nên ngắn gọn hơn.

Constructor trong C#

int result; result = 10 + 5; // 15 result = 10 - 5; // 5 result = 10 * 5; // 50 result = 10 / 5; // 2 result = 10 % 5; // 0

3

Trong C #, bất cứ khi nào một instance của một lớp được tạo, phương thức khởi tạo của nó (constructor) sẽ được gọi. Giống như các phương thức, một hàm tạo có thể được nạp chồng. Nó phải có cùng tên với lớp bao quanh. Điều này hữu ích khi bạn muốn xác định một hàm tạo bổ sung có một số lượng đối số khác nhau.

“this” trong C#

int result; result = 10 + 5; // 15 result = 10 - 5; // 5 result = 10 * 5; // 50 result = 10 / 5; // 2 result = 10 % 5; // 0

4

Trong C #, từ

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

12 đề cập đến instance hiện tại của một lớp.

Hàm tạo không tham số trong C#

int result; result = 10 + 5; // 15 result = 10 - 5; // 5 result = 10 * 5; // 50 result = 10 / 5; // 2 result = 10 % 5; // 0

5

Trong C #, nếu không có hàm tạo nào được chỉ định trong một lớp, trình biên dịch sẽ tự động tạo một hàm tạo không tham số.

“public” & “private” trong C#

int result; result = 10 + 5; // 15 result = 10 - 5; // 5 result = 10 * 5; // 50 result = 10 / 5; // 2 result = 10 % 5; // 0

6

Trong C #, các thành viên của một lớp có thể được đánh dấu bằng các bổ ngữ truy cập, bao gồm

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

04 và

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

05.

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

04 là thành viên có thể được truy cập bởi các lớp khác.

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

05 là thành viên chỉ có thể được truy cập bằng mã trong cùng một lớp.

Theo mặc định, các trường, thuộc tính và phương thức là

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

05 và các lớp là

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

04.

Static trong C#

int result; result = 10 + 5; // 15 result = 10 - 5; // 5 result = 10 * 5; // 50 result = 10 / 5; // 2 result = 10 % 5; // 0

7

Trong C #, một hàm tạo Static được chạy một lần cho mỗi kiểu, không phải cho mỗi trường hợp. Nó phải là không tham số. Nó được gọi trước khi kiểu được khởi tạo hoặc một thành viên static được truy cập.

Static Class trong C#

int result; result = 10 + 5; // 15 result = 10 - 5; // 5 result = 10 * 5; // 50 result = 10 / 5; // 2 result = 10 % 5; // 0

8

Trong C #, một lớp Static không thể được khởi tạo. Các thành viên của nó được truy cập bằng tên lớp.

Điều này hữu ích khi bạn muốn một lớp cung cấp một bộ công cụ nhưng không cần duy trì bất kỳ dữ liệu nội bộ nào.

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

19 là một lớp Static thường được sử dụng.

Interfaces & Inheritance

Interface trong C#

int result; result = 10 + 5; // 15 result = 10 - 5; // 5 result = 10 * 5; // 50 result = 10 / 5; // 2 result = 10 % 5; // 0

9

Trong C #, một interface chứa các định nghĩa cho một nhóm các chức năng liên quan mà một lớp có thể triển khai.

Các interface rất hữu ích vì chúng đảm bảo cách một lớp hoạt động. Điều này, cùng với ý nghĩa là trong thực tế một lớp có thể triển khai nhiều interface, giúp tổ chức và mô-đun hóa các thành phần của phần mềm.

Cách tốt nhất để bắt đầu tên của interface bằng chữ cái “I”.

Tính kế thừa (Inheritance) trong C#

int a = 10; a++; Console.WriteLine(a); // Prints: 11

0

Trong C #, kế thừa là quá trình một lớp kế thừa các thành viên của lớp khác. Lớp kế thừa được gọi là lớp con hoặc lớp dẫn xuất. Lớp khác được gọi là lớp cha, hoặc lớp cơ sở.

Khi bạn định nghĩa một lớp kế thừa từ một lớp khác, lớp dẫn xuất mặc nhiên nhận được tất cả các thành viên của lớp cơ sở, ngoại trừ các hàm tạo và trình hoàn thiện của nó. Do đó, lớp dẫn xuất có thể sử dụng lại mã trong lớp cơ sở mà không cần phải triển khai lại nó. Trong lớp dẫn xuất, bạn có thể thêm nhiều thành viên hơn. Theo cách này, lớp dẫn xuất mở rộng chức năng của lớp cơ sở.

“protected” trong C#

int a = 10; a++; Console.WriteLine(a); // Prints: 11

1

Trong C #, một thành viên được bảo vệ có thể được truy cập bởi lớp hiện tại và bất kỳ lớp nào kế thừa từ đó. Điều này được chỉ định bởi lệnh

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

20

“override/virtual” trong C#

int a = 10; a++; Console.WriteLine(a); // Prints: 11

2

Trong C #, một lớp dẫn xuất (lớp con) có thể sửa đổi hành động của một phương thức kế thừa. Phương thức trong lớp dẫn xuất phải được gắn nhãn

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

21 và phương thức trong lớp cơ sở (lớp cha) phải được gắn nhãn

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

22.

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

22 và

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

21 tương đối hữu ích bởi 2 lý do:

  1. Vì trình biên dịch xử lý các phương thức “thường” và virtual khác nhau, chúng phải được đánh dấu như vậy.
  2. Điều này tránh “ẩn” các phương thức kế thừa, giúp các nhà phát triển hiểu được ý định của mã.

“abstract” trong C#

int a = 10; a++; Console.WriteLine(a); // Prints: 11

3

Trong C #, công cụ sửa đổi

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

25 chỉ ra rằng thứ đang được sửa đổi có phần triển khai bị thiếu hoặc không đầy đủ. Nó phải được thực thi hoàn toàn bởi một lớp dẫn xuất non-abstract.

Công cụ sửa đổi

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

25 có thể được sử dụng với các lớp, phương thức, thuộc tính, chỉ mục và sự kiện. Sử dụng công cụ sửa đổi

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

25 trong khai báo lớp để chỉ ra rằng một lớp chỉ được dự định là lớp cơ sở của các lớp khác, không được khởi tạo riêng.

Nếu ít nhất một thành viên của lớp là

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

25, thì lớp chứa cũng phải được đánh dấu là

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

25.

Việc thực hiện hoàn chỉnh một thành viên

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

25 phải được đánh dấu

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

21.

Sự tham chiếu (References)

Loại tham chiếu trong C#

int a = 10; a++; Console.WriteLine(a); // Prints: 11

4

Trong C#, các class và interface là các kiểu tham chiếu. Các biến của kiểu tham chiếu lưu trữ các tham chiếu đến dữ liệu (đối tượng) của chúng trong bộ nhớ và chúng không chứa chính dữ liệu đó.

Một loại đối tượng như

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

32,

string str2 = "This is C# Program xsdd_$#%"; // string converted to Upper case string upperstr2 = str2.ToUpper(); //upperstr2 contains "THIS IS C# PROGRAM XSDD_$#%"

7, hoặc

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

34 cũng là một loại tham chiếu.

Tham chiếu đối tượng trong C#

int a = 10; a++; Console.WriteLine(a); // Prints: 11

5

Trong C#, một đối tượng có thể được tham chiếu bởi bất kỳ kiểu nào trong hệ thống phân cấp kế thừa của nó hoặc bởi bất kỳ interface nào mà nó triển khai.

Chức năng tham chiếu đối tượng trong C#

int a = 10; a++; Console.WriteLine(a); // Prints: 11

6

Trong C#, chức năng có sẵn cho một tham chiếu đối tượng được xác định bởi loại của tham chiếu, không phải loại của đối tượng.

Tính đa hình (Polyphormism) trong C#

int a = 10; a++; Console.WriteLine(a); // Prints: 11

7

Tính đa hình (Polymorphism) là khả năng trong lập trình trình bày cùng một interface cho các form nền tảng (kiểu dữ liệu) khác nhau.

Chúng ta có thể chia ý tưởng thành hai khái niệm liên quan. Một ngôn ngữ lập trình hỗ trợ tính đa hình nếu:

  1. Các đối tượng thuộc các loại khác nhau có một interface chung (interface theo nghĩa chung, không chỉ là interface của C #), và
  2. Các đối tượng có thể duy trì chức năng duy nhất cho kiểu dữ liệu của chúng

Upcasting trong C#

int a = 10; a++; Console.WriteLine(a); // Prints: 11

8

Trong C#, upcasting là tạo một lớp cha kế thừa hoặc một tham chiếu giao diện được triển khai từ một tham chiếu lớp con.

Downcasting trong C#

int a = 10; a++; Console.WriteLine(a); // Prints: 11

9

Trong C#, downcasting là tạo một tham chiếu lớp con từ một lớp cha hoặc tham chiếu giao diện..

Downcasting có thể dẫn đến lỗi thời gian chạy nếu lớp cha không thể được truyền sang lớp con được chỉ định.

// Input positive value, Output square root of x Console.Write(Math.Sqrt(x)); //OUTPUT: 9

0

Tham chiếu rỗng (Null) trong C#

// Input positive value, Output square root of x Console.Write(Math.Sqrt(x)); //OUTPUT: 9

1

Trong C#, tham chiếu không xác định là tham chiếu rỗng (null) hoặc chưa được gán.Tham chiếu rỗng được đại diện bởi từ

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

35.

Hãy cẩn thận khi kiểm tra các tham chiếu rỗng và chưa được gán. C# chỉ có thể so sánh một tham chiếu rỗng nếu nó được gắn nhãn

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

35 rõ ràng

Kiểu biến (giá trị) trong C#

Trong C#, các loại biến chứa chính dữ liệu. Bao gồm

string str2 = "This is C# Program xsdd_$#%"; // string converted to Upper case string upperstr2 = str2.ToUpper(); //upperstr2 contains "THIS IS C# PROGRAM XSDD_$#%"

6,

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

07,

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

01, và

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

40.

Dưới đây là toàn bộ danh sách các loại biến:

  • Console.WriteLine("Enter your name: "); name = Console.ReadLine(); 01, Console.WriteLine("Enter your name: "); name = Console.ReadLine(); 07, // This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached / 43
  • Tất cả kiểu dữ liệu số
  • Cấu trúc ( // This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached / 44)
  • Bảng kê ( // This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached / 45)

So sánh trong C#

// Input positive value, Output square root of x Console.Write(Math.Sqrt(x)); //OUTPUT: 9

2

Trong C#, kiểu so sánh được thực hiện với toán tử bình đẳng (

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

47), khác với các loại tham chiếu và biến.

Khi hai loại biến được so sánh, chúng được so sánh để bình đẳng về giá trị. Chúng bằng nhau nếu chúng có cùng giá trị.

Khi hai loại tham chiếu được so sánh, chúng được so sánh để tham chiếu bình đẳng. Chúng bằng nhau nếu chúng đề cập đến cùng một vị trí trong bộ nhớ.

Ghi đè (Override) trong C#

// Input positive value, Output square root of x Console.Write(Math.Sqrt(x)); //OUTPUT: 9

3

Trong C#,

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

21 cho phép sửa đổi các tham chiếu class cơ sở bởi một class dẫn xuất để truy cập bằng các tham chiếu dẫn xuất.

Tức là: nếu một “class dẫn xuất” ghi đè lên một “class cơ sở”, thì phiên bản ghi đè có thể được truy cập bằng các tham chiếu “dẫn xuất” và tham chiếu “cơ sở”.

Object Class trong C#

// Input positive value, Output square root of x Console.Write(Math.Sqrt(x)); //OUTPUT: 9

4

Trong C#, “class cở sở” của tất cả các loại là

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

32 . Mọi class đều kế thừa class này một cách ngầm định.

Khi bạn tạo một class không có kế thừa, C# mặc định làm cho nó kế thừa từ

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

32.

Phương thức Object Class trong C#

// Input positive value, Output square root of x Console.Write(Math.Sqrt(x)); //OUTPUT: 9

5

Trong C#,

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

32 class định nghĩa cho:

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

51,

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

52, và

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

53.

ToString() trong C#

// Input positive value, Output square root of x Console.Write(Math.Sqrt(x)); //OUTPUT: 9

6

Khi một đối tượng không phải chuỗi được in ra bảng điều khiển với

string str2 = "This is C# Program xsdd_$#%"; // string converted to Upper case string upperstr2 = str2.ToUpper(); //upperstr2 contains "THIS IS C# PROGRAM XSDD_$#%"

0, thì sẽ sử dụng hàm để gọi ra là

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

51

So sánh chuỗi trong C#

// Input positive value, Output square root of x Console.Write(Math.Sqrt(x)); //OUTPUT: 9

7

Trong C#,

string str2 = "This is C# Program xsdd_$#%"; // string converted to Upper case string upperstr2 = str2.ToUpper(); //upperstr2 contains "THIS IS C# PROGRAM XSDD_$#%"

7 là một loại tham chiếu nhưng nó có thể được so sánh theo giá trị bằng cách sử dụng

Console.WriteLine("Enter your name: "); name = Console.ReadLine();

47.

Các loại chuỗi bất biến trong C#

// Input positive value, Output square root of x Console.Write(Math.Sqrt(x)); //OUTPUT: 9

8

Trong C#, các kiểu

string str2 = "This is C# Program xsdd_$#%"; // string converted to Upper case string upperstr2 = str2.ToUpper(); //upperstr2 contains "THIS IS C# PROGRAM XSDD_$#%"

7 là bất biến, có nghĩa là chúng không thể thay đổi sau khi chúng được tạo.

Chuỗi trống (Empty String) trong C#

// Input positive value, Output square root of x Console.Write(Math.Sqrt(x)); //OUTPUT: 9

9

Trong C#, lệnh

string str2 = "This is C# Program xsdd_$#%"; // string converted to Upper case string upperstr2 = str2.ToUpper(); //upperstr2 contains "THIS IS C# PROGRAM XSDD_$#%"

7 có thể tham chiếu đến chuỗi rỗng với

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

60 và

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

61.

Điều này tách biệt với

// This is a single line comment / This is a multi-line comment and continues until the end of comment symbol is reached /

35 và các tham chiếu chưa chỉ định, cũng có thể đặt kiểu

string str2 = "This is C# Program xsdd_$#%"; // string converted to Upper case string upperstr2 = str2.ToUpper(); //upperstr2 contains "THIS IS C# PROGRAM XSDD_$#%"

7 .

Một số thuật ngữ phổ biến trong C#

Class (lớp)

Class trong các ngôn ngữ lập trình hướng đối tượng nói chung, trong C# nói riêng, mang ý nghĩa là một kiểu dữ liệu. Đối với C#, class là các khối xây dựng cơ sở của các chương trình ứng dụng, và là trung tâm của lập trình C#. Class trong C# là một loại kiểu dữ liệu đặc biệt chứa định nghĩa những thuộc tính (thông tin) và phương thức (hành vi), dùng để mô tả chung cho một nhóm những thực thể cùng loại.

Trong C#, mỗi class có thể chứa:

  • Biến thành viên (field): Lưu trữ các thông tin mô tả về đối tượng hay trạng thái của đối tượng;
  • Thuộc tính (property): có vai trò lưu trữ thông tin tương tự như biến thành viên nhưng có khả năng kiểm soát dữ liệu xuất nhập;
  • Phương thức (method): Dùng để cập nhật, tính toán, cung cấp và xử lý thông tin;
  • Sự kiện (delegate/event): Gửi thông báo về sự thay đổi trạng thái của đối tượng ra bên ngoài.
  • Định nghĩa của kiểu dữ liệu khác, gọi là kiểu thành viên (member /inner/nested type). Class có thể chứa định nghĩa của bất kỳ nhóm kiểu nào mà bạn đã biết (class, struct, interface, delegate, enum).

Khi xem class như một kiểu dữ liệu thì object của class tương ứng chính là biến thuộc kiểu dữ liệu đó. Class chứa mô tả trừu tượng còn object chứa giá trị cụ thể của mỗi mô tả đó.

Reference (tham chiếu)

Tham chiếu là một giá trị cho phép chương trình truy xuất gián tiếp tới một số liệu cụ thể, như một biến hay một bản ghi, trong bộ nhớ máy tính hay trong các thiết bị lưu trữ khác. Quá trình mà tham chiếu chỉ đến (refer) dữ liệu, và truy xuất dữ liệu được gọi là tham chiếu ngược (dereferencing) đến tham chiếu.

Một tham chiếu thì khác với chính dữ liệu đó. Thường thì, để tham chiếu đến dữ liệu chứa trong bộ nhớ của một hệ thống nhất định, một tham chiếu được hiện thực như là địa chỉ vật lý của nơi mà dữ liệu được chứa trong bộ nhớ hay trong thiết bị lưu trữ. Vì lý do này, tham chiếu thường bị nhầm lẫn một cách sai lệch với con trỏ hay địa chỉ vùng nhớ, và được nói là “trỏ đến” (point to) dữ liệu.

Type (kiểu, loại)

Kiểu dữ liệu (data type, hay đơn giản là type) trong C# (cũng tương tự như các ngôn ngữ khác) là một đặc tính của dữ liệu nhằm thông báo cho trình biên dịch C# biết về ý định sử dụng dữ liệu của lập trình viên. Một trong những việc đầu tiên cần sử dụng đến kiểu dữ liệu là khai báo biến và hằng mà chúng ta đã biết. C# nghiêm ngặt hơn nhiều so với các ngôn ngữ khác về vấn đề kiểu dữ liệu.

Object (đối tượng)

Đối tượng (object) là một thực thể trong thế giới thực, ví dụ như cái bàn, cây viết, điện thoại, chiếc xe hơi …. Nó là một thực thể có trạng thái và hành vi. Ở đây, trạng thái có nghĩa là dữ liệu và hành vi có nghĩa là phương thức. Nó là một thực thể runtime, vì nó được tạo ra trong thời gian chương trình chạy. Đối tượng là một thể hiện của một lớp. Tất cả các thành viên của lớp có thể được truy cập thông qua đối tượng

String (chuỗi)

Trong C#, chuỗi (string) là một chuỗi các ký tự Unicode hoặc mảng các ký tự. Phạm vi các ký tự Unicode bắt đầu từ U +0000 đến U +FFFF. Mảng các ký tự được gọi là text, vì vậy chuỗi là đại diện của text. Chúng ta hay bị nhầm lẫn và hay hiểu rằng chuỗi (string) là một từ khóa hay đối tượng, lớp.

Chuỗi được đại diện bởi lớp System.String. Từ khóa “string” là một bí danh của lớp System.String. Thay vì viết System.String, người ta có thể sử dụng là String, là viết tắt của lớp System.String. Về cơ bản, string và String đều có thể được sử dụng như một bí danh của lớp System.String. Vì vậy chuỗi là một đối tượng của lớp System.String.

Interface

Một Interface được định nghĩa như là một giao ước có tính chất cú pháp (syntactical contract) mà tất cả lớp kế thừa Interface đó nên theo. Interface định nghĩa phần “là gì” của giao ước và các lớp kế thừa định nghĩa phần “cách nào” của giao ước đó.

Interface định nghĩa các thuộc tính, phương thức và sự kiện, mà là các thành viên của Interface đó. Các Interface chỉ chứa khai báo của các thành viên này. Việc định nghĩa các thành viên là trách nhiệm của lớp kế thừa. Nó thường giúp ích trong việc cung cấp một Cấu trúc chuẩn mà các lớp kế thừa nên theo.

Value (biến, giá trị)

Một biến là không gì khác ngoài một tên được cung cấp cho khu vực lưu giữ mà chương trình có thể thao tác. Mỗi biến trong C# có một kiểu cụ thể, mà quyết định kích cỡ và cách bố trí bộ nhớ của biến đó, cách dãy giá trị có thể được lưu giữ trong bộ nhớ đó, và cách tập hợp các hoạt động có thể được áp dụng tới biến đó.

Trên đây, MESIDAS đã chia sẻ cho các bạn những câu lệnh, những cú pháp trong C# (C Sharp) và kèm theo đó có cả những ví dụ cũng như là giải thích rõ ràng. Chúng tôi hy vọng rằng, với những kiến thức được chia sẻ trong bài viết này sẽ giúp ích cho các bạn trong quá trình tìm hiểu, nghiên cứu, học tập và làm việc với ngôn ngữ lập trình C# (C Sharp) này. Xin cảm ơn!