C# Cơ bản .NET Core §1 Cài đặt, chương trình C# đầu tiên §2 Biến, kiểu dữ liệu và nhập/xuất §3 Toán tử số học và gán §4 So sánh, logic và lệnh if, switch §5 Vòng lặp for, while §6 Phương thức - Method §7 Chuyển số thành chữ §8 Phương thức - Delegate §9 Lớp - Class §10 Namespace §11 Partial, Nested §12 Kiểu giá trị, tham chiếu §13 Kiểu vô danh và dynamic §14 Biểu thức lambda §15 Event §16 Hàm hủy - Quá tải toán tử - thành viên tĩnh - indexer §17 null và nullable §18 Mảng §19 Chuỗi ký tự §20 Tính kế thừa §21 Phương thức khởi tạo §22 Tính đa hình - abstract - interface §23 Struct và Enum §24 Ngoại lệ Exeption §25 IDisposable - using §26 File cơ bản §27 FileStream §28 Generic §29 Collection - List §30 SortedList §31 Queue / Stack §32 Linkedlist §33 Dictionary - HashSet §34 Phương thức mở rộng §35 ObservableCollection §36 LINQ §37 (Multithreading) async - bất đồng bộ §38 Type §39 Attribute Annotation §40 DI Dependency Injection §41 (Multithreading) Parallel §42 Thư viện lớp §43 (Networking) Uri, Dns, Ping §44 (Networking) HttpClient §45 (Networking) HttpMessageHandler §46 (Networking) HttpListener §47 (Networking) Tcp TcpListenerr/TcpClient §48 (ADO.NET) SqlConnection §49 (ADO.NET) SqlCommand §50 (ADO.NET) DataAdapter §51 (EF Core) Tổng quan §52 (EF Core) Tạo Model §53 (EF Core) Fluent API §54 (EF Core) Query §55 (EF Core) Scaffold §56 (EF Core) Migration §57 (ASP.NET CORE) Hello World! §58 (ASP.NET CORE) Middleware §59 (ASP.NET CORE) Map - Request - Response §60 (ASP.NET CORE) IServiceCollection - MapWhen §61 (ASP.NET CORE) Session - ISession §62 (ASP.NET CORE) Configuration §63 (ASP.NET CORE) Gửi Mail §64 (ASP.NET CORE) SASS/SCSS §65 (ASP.NET CORE) LibMan §66 (ASP.NET RAZOR) Khởi tạo và Route §67 (ASP.NET RAZOR) Cú pháp Razor §68 (ASP.NET RAZOR) Layout trong ASP.NET Core §69 (ASP.NET RAZOR) Partial §70 (ASP.NET RAZOR) ViewComponent §71 (ASP.NET RAZOR) TagHelper §72 (ASP.NET RAZOR) HtmlHelper §73 (ASP.NET RAZOR) PageModel §74 (ASP.NET RAZOR) Model Binding §75 (ASP.NET RAZOR) HTML Form, Validation §76 (ASP.NET RAZOR) Upload File §77 (ASP.NET RAZOR) Entity Framework §78 (ASP.NET RAZOR) Paging §79 (ASP.NET RAZOR) Identity (1) - Register, Login, Logout §80 (ASP.NET RAZOR) Identity (2) Lockout, Reset Password §81 (ASP.NET RAZOR) Identity (3) Google Login §82 (ASP.NET RAZOR) Identity (4) Facebook Login §83 (ASP.NET RAZOR) Identity (5) profile, password, email ... §84 (ASP.NET RAZOR) Identity (6) Role §85 (ASP.NET RAZOR) Identity (7) Role-based Authorization §86 (ASP.NET RAZOR) Identity (8) RoleClaim §87 (ASP.NET RAZOR) Identity (9) Authorization Handler §88 (ASP.NET RAZOR) IAuthorizationService §89 (ASP.NET MVC) Controller - View §90 (ASP.NET MVC) Route §91 (ASP.NET MVC) EF, Identity §92 (ASP.NET MVC) Binding, Validation §93 (ASP.NET MVC) Xây dựng Website(1) §94 (ASP.NET MVC) Xây dựng Website(2) §95 (ASP.NET MVC) Xây dựng Website(3) §96 (ASP.NET MVC) Xây dựng Website(4) §97 (ASP.NET MVC) Giỏ hàng - Cart (5) §98 (ASP.NET MVC) elFinder (5) §99 (ASP.NET MVC) SB Admin (6) §100 (ASP.NET MVC) Kestrel, publish

Các toán tử số học trong C#

Toán tử đó là các ký hiệu (+ - * / % && ! ...), được được dùng để thi hành các tính toán về toán học hay biểu thức logic.

Trong C# nó hỗ trợ những toán tử về số học sau:

Toán tử Ý nghĩa Ví dụ
+ Phép cộng a + b
- Phép trừ a - b
* Phép nhân a * b
/ Phép chia a / b
% Phép chia lấy dư (modules) a % b

Phép cộng +, phép trừ -

int a = 28;
int b = 10;
//Phép cộng
Console.WriteLine(a + b);  // In ra: 38
Console.WriteLine(a - b);  // In ra: 18

Phép nhân *

float a = 1.2f;
int b = 3;
Console.WriteLine(a * b);  // In ra 3.6

Phép chia /

float a = 1.2f;
int b = 3;
Console.WriteLine(a / b);  // In ra 0.4

Nếu số chia và số bị chia thì phép toán / sẽ lấy phần nguyên. Nếu muốn lấy giá trị thực chính xác, cần chuyển số chia, hoặc bị chia thành số thực.

int a = 10;
int b = 3;
Console.WriteLine(a / b);          // In ra 3

// Chuyển số chia thành số thực
Console.WriteLine(a / (float)b);   // In ra 3.333333

Phép chia lấy dư %

int a = 8;
int b = 3;
Console.WriteLine(a % b);  // In ra 2

Thứ tự ưu tiên của các toán tử trong biểu thức

Một biểu thức có thể có nhiều số hạng, kết hợp lại bởi nhiều toán tử và ký hiệu ( ), Lúc này cần biết thứ tự ưu tiên để tính được chính xác giá trị biểu thức.

Trong biểu thức, toán tử nào có độ ưu tiên cao hơn sẽ được tính trước.

Độ ưu tiên từ cao xuống thấp là: 1 trong ngoặc (), 2 số mũ - căn, 3 nhân hoặc chia * /, 4 cộng hoặc trừ + -

Khi độ ưu tiên ngang nhau, sẽ tính từ trái qua phải

Console.WriteLine(5 + 3 * 2);         // 11
Console.WriteLine(6 / 2 + 3 * 2);     // 9
Console.WriteLine(6 / (2 + 3) * 2);   // 2

Toán tử gán trong C#

Toán tử gán, dùng để gán giá trị (biểu thức giá trị) vào biến. Các toán tử gán gồm:

Toán tử Diễn tả Ví dụ
= Toán tử gán:
Gán biểu thức bên phải của = vào biến bên trái
int x = 10 + 12;        // x bằng 22
+= Toán tử công thêm:
Công thêm vào biến bên trái += giá trị bên phải
int x = 10;
x += 2;                 // x bằng 12
-= Toán tử trừ bớt:
Bớt đi giá trị biến bên trái của -= một lượng bằng biểu thức bên phải
int c = 10;
c -= 3;                 // c = 7
               
*= Toán tử nhân với:
a *= b tương đương a = a * b;
int x = 2;
x *= 3;                 //x = 6
/= Toán tử chia cho:
a / b tương đương a = a / b
int a = 6;
a /= 2;                 // a = 3
%= Toán tử gán module:
a %=b tương đương a = a % b;
int a = 10;
a %= 3;                 // a = 1

Toán tử tăng ++ và giảm -- trong C#

Toán tử ++ thêm vào biến 1 đơn vị, còn -- bớt đi một đơn vị, toán tử này có thể viết bên trái hoặc bên phải biến.

int a = 10;
a++;    // a là 11 (thêm 1)
++a;    // a là 12 (thêm 1)

a--;    // a là 11 (bớt 1)
--a;    // a là 10 (bớt 1)

Nếu biến độc lập, thì việc viết ++ hoặc -- bên trái hay bên phải không có khác biệt. Tuy nhiên trong biểu thức thì có sự khác biệt.

Nếu viết trước ++x thì toán tử ++ thi hành trước rồi mới áp dụng vào biểu thức, nếu viết sau dạng x++ thì biểu thức thi hành xong mới đến ++ (tương tự với --)

Ví dụ ++ thi hành sau do viết sau biến

int a = 5;
int b = 2 * a++;  // b = 10; a = 6

Ví dụ ++ sẽ thi hành trước

int a = 5;
int b = 2 * ++a;  // b = 12; a = 6

Source code: CS003_ArithmeticAssignment (Git), hoặc tải ex003-1