C# Flashcards
(53 cards)
IDE
integrated development environment (nơi viết code)
unity và cocos
nền tảng (game engines) để phát triển game
để code game có đồ họa nặng như genshin
nên dùng c++ hoặc c#
int là kiểu dữ liệu gì?
Kiểu dữ liệu số nguyên.
int age = 25;
Console.WriteLine(age);
Khai báo mảng trong C# như thế nào?
int[] numbers = {1, 2, 3, 4, 5};
Câu lệnh switch dùng để làm gì?
Dùng để kiểm tra giá trị của một biến với nhiều điều kiện khác nhau.
char grade = ‘A’;
switch (grade) {
case ‘A’:
Console.WriteLine(“Excellent!”);
break;
case ‘B’:
Console.WriteLine(“Good job.”);
break;
default:
Console.WriteLine(“Keep trying!”);
break;
}
Kết quả: Excellent!
Cách sử dụng if-else trong C#?
if (age >= 18) {
Console.WriteLine(“You are an adult.”);
} else {
Console.WriteLine(“You are underaged.”);
}
Cú pháp vòng lặp for trong C#?
for (int i = 0; i < 5; i++) {
Console.WriteLine(“Hello “ + i);
}
Vòng lặp nào dùng để duyệt qua từng phần tử của mảng?
Vòng lặp foreach.
int[] numbers = {1, 2, 3, 4, 5};
foreach (int number in numbers) {
Console.WriteLine(number);
}
Kết quả:
// 1
// 2
// 3
// 4
// 5
Cách khai báo một hàm không trả giá trị?
void SayHello( ) {
Console.WriteLine(“Hello!”);
}
Hàm có trả giá trị int sẽ khai báo như thế nào?
int Add(int a, int b) {
return a + b;
}
Lớp trong C# là gì?
Lớp là một khuôn mẫu để tạo đối tượng, chứa thuộc tính và phương thức.
class Animal {
public string Name;
public void Speak() {
Console.WriteLine(Name + “ says Hello!”);
}
}
Animal cat = new Animal();
cat.Name = “Kitty”;
cat.Speak(); Kết quả: Kitty says Hello!
Đặc điểm của kế thừa trong OOP?
Một lớp con có thể kế thừa thuộc tính và phương thức của lớp cha.
class Animal {
public void Speak() {
Console.WriteLine(“Animal speaks.”);
}
}
class Dog : Animal {
public void Bark() {
Console.WriteLine(“Dog barks.”);
}
}
Dog myDog = new Dog();
myDog.Speak(); Kết quả: Animal speaks.
myDog.Bark(); Kết quả: Dog barks.
Đa hình (Polymorphism) trong C# là gì?
Đa hình cho phép phương thức có cùng tên nhưng hành vi khác nhau tuỳ vào đối tượng gọi nó (overloading, overriding).
class Animal {
public virtual void Speak() {
Console.WriteLine(“Animal speaks.”);
}
}
class Dog : Animal {
public override void Speak() {
Console.WriteLine(“Dog barks.”);
}
}
Animal myAnimal = new Dog();
myAnimal.Speak(); Kết quả: Dog barks.
Cách sử dụng base trong kế thừa?
base gọi phương thức hoặc thuộc tính của lớp cha.
class Dog : Animal {
public void Speak() {
base.Speak(); // Gọi phương thức của lớp cha
Console.WriteLine(“Woof!”);
}
}
Cách sử dụng get và set trong C#?
public int Age {
get { return age; }
set { if (value >= 0) age = value; }
}
Kiểu dữ liệu float dùng để lưu trữ giá trị nào?
Lưu trữ số thực có dấu, có độ chính xác 7 chữ số thập phân.
float pi = 3.14159f;
Console.WriteLine(pi); Kết quả: 3.14159
Sự khác biệt giữa var và dynamic?
var: Xác định kiểu dữ liệu tại thời điểm biên dịch, không thể thay đổi kiểu sau đó.
dynamic: Xác định kiểu dữ liệu tại thời điểm chạy, có thể thay đổi kiểu.
var x = 10; int
dynamic y = 10; int
y = “Hello”; string (hợp lệ với dynamic)
Giá trị mặc định của kiểu dữ liệu bool là gì?
false.
Cách viết câu lệnh if rút gọn (ternary operator)?
condition ? trueExpression : falseExpression;
vd:
int age = 20;
string message = age >= 18 ? “Adult” : “Minor”;
Console.WriteLine(message); Kết quả: Adult
Câu lệnh else if có thể xuất hiện bao nhiêu lần?
Không giới hạn.
if (score >= 90) {
Console.WriteLine(“A”);
} else if (score >= 80) {
Console.WriteLine(“B”);
} else {
Console.WriteLine(“C”);
}
Khi nào dùng vòng lặp do-while thay vì while?
Khi cần đảm bảo khối lệnh thực thi ít nhất một lần, ngay cả khi điều kiện sai ngay từ đầu.
int count = 1;
do {
Console.WriteLine(“Hello “ + count);
count++;
} while (count <= 3);
Kết quả:
Hello 1
Hello 2
Hello 3
Cú pháp vòng lặp vô hạn trong C#?
while (true) {
// code
}
Hàm có thể trả về nhiều giá trị không?
Không trực tiếp, nhưng có thể sử dụng out hoặc Tuple.
(int, int) GetMinMax(int[] numbers) {
return (numbers.Min(), numbers.Max());
}
var result = GetMinMax(new[] {1, 2, 3, 4, 5});
Console.WriteLine(result.Item1); // Min
Console.WriteLine(result.Item2); // Max