Bài Tập, Đề Thi Trắc Nghiệm Online – Môn Lập Trình .net – Đề 03

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Môn Lập Trình .net

Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net - Đề 03

Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net - Đề 03 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Trong .NET, Common Language Runtime (CLR) đóng vai trò trung tâm. Chức năng chính nào sau đây KHÔNG thuộc về CLR?

  • A. Quản lý bộ nhớ và thu gom rác (Garbage Collection)
  • B. Biên dịch Just-In-Time (JIT) để thực thi mã trên các nền tảng khác nhau
  • C. Biên dịch mã nguồn C# thành mã máy (machine code)
  • D. Cung cấp các dịch vụ an ninh và quản lý kiểu dữ liệu

Câu 2: Cho đoạn mã C# sau:

```csharp
List numbers = new List { 1, 2, 3, 4, 5 };
var evenNumbers = numbers.Where(n => n % 2 == 0);
```

`evenNumbers` trong đoạn mã trên là kiểu dữ liệu nào và nó đại diện cho điều gì?

  • A. `List` và chứa các số chẵn từ danh sách ban đầu.
  • B. `IEnumerable` và đại diện cho một truy vấn sẽ trả về các số chẵn khi được thực thi.
  • C. `IQueryable` và chứa kết quả truy vấn CSDL các số chẵn.
  • D. `int[]` và chứa một mảng các số chẵn đã được lọc.

Câu 3: Trong lập trình hướng đối tượng với C#, "tính đóng gói" (encapsulation) mang lại lợi ích chính nào sau đây?

  • A. Tăng tốc độ thực thi chương trình.
  • B. Cho phép kế thừa đa lớp phức tạp.
  • C. Giảm dung lượng bộ nhớ sử dụng.
  • D. Che giấu thông tin và kiểm soát truy cập đến dữ liệu và phương thức của đối tượng.

Câu 4: Phương thức mở rộng (Extension method) trong C# cho phép bạn làm gì?

  • A. Thay thế các phương thức hiện có của một lớp.
  • B. Tạo ra một lớp con kế thừa từ lớp gốc và thêm phương thức mới.
  • C. Thêm phương thức mới vào một kiểu dữ liệu đã tồn tại mà không cần sửa đổi trực tiếp kiểu đó.
  • D. Thay đổi phạm vi truy cập của các phương thức hiện có.

Câu 5: Cho đoạn code C# sau:

```csharp
string message = null;
try
{
Console.WriteLine(message.Length);
}
catch (NullReferenceException ex)
{
Console.WriteLine(

  • A. Lỗi: Object reference not set to an instance of an object.
    Khối finally luôn được thực thi
  • B. Khối finally luôn được thực thi
    Lỗi: Object reference not set to an instance of an object.
  • C. Chương trình sẽ bị crash và không in ra gì.
  • D. 0
    Khối finally luôn được thực thi

Câu 6: Trong ASP.NET Core, Middleware pipeline đóng vai trò quan trọng trong việc xử lý request. Middleware KHÔNG chịu trách nhiệm cho công việc nào sau đây?

  • A. Xác thực người dùng (Authentication)
  • B. Biên dịch mã C# thành mã máy (Compilation)
  • C. Ghi log request (Logging)
  • D. Định tuyến request đến controller thích hợp (Routing)

Câu 7: Dependency Injection (DI) là một nguyên tắc thiết kế quan trọng trong .NET. Lợi ích chính của việc sử dụng DI là gì?

  • A. Tăng hiệu suất thực thi của ứng dụng.
  • B. Giảm số lượng code cần viết.
  • C. Tăng tính module hóa và khả năng kiểm thử của ứng dụng.
  • D. Tự động tạo tài liệu API cho ứng dụng.

Câu 8: Trong Entity Framework Core, "Migrations" được sử dụng để làm gì?

  • A. Quản lý và áp dụng các thay đổi schema database khi mô hình dữ liệu thay đổi.
  • B. Tối ưu hóa hiệu suất truy vấn database.
  • C. Tạo database context tự động từ database đã có.
  • D. Sao lưu và phục hồi database.

Câu 9: Async và Await trong C# được sử dụng để giải quyết vấn đề gì chính trong lập trình?

  • A. Tăng tốc độ xử lý đồng bộ.
  • B. Xử lý các tác vụ I/O hoặc CPU-bound mà không block thread chính của ứng dụng.
  • C. Đơn giản hóa việc quản lý bộ nhớ.
  • D. Bảo vệ ứng dụng khỏi các cuộc tấn công bảo mật.

Câu 10: Cho đoạn code C# sau:

```csharp
public interface ICalculator
{
int Add(int a, int b);
}

public class BasicCalculator : ICalculator
{
public int Add(int a, int b) => a + b;
}

public class AdvancedCalculator : ICalculator
{
public int Add(int a, int b) => a + b + 10; // Thêm 10
}

public class CalculatorService
{
private readonly ICalculator _calculator;

public CalculatorService(ICalculator calculator)
{
_calculator = calculator;
}

public int PerformCalculation(int x, int y)
{
return _calculator.Add(x, y);
}
}

// ... trong Startup.cs hoặc Program.cs:
// services.AddScoped();

// ... ở đâu đó trong code:
// var service = serviceProvider.GetService();
// int result = service.PerformCalculation(5, 3);
```

Nếu cấu hình Dependency Injection được thiết lập để `ICalculator` được resolve thành `BasicCalculator`, giá trị của `result` sẽ là bao nhiêu?

  • A. 8
  • B. 18
  • C. 53
  • D. Mã sẽ gây ra lỗi compile-time do cấu hình DI không hợp lệ.

Câu 11: Delegate trong C# là gì và nó thường được sử dụng cho mục đích nào?

  • A. Một kiểu dữ liệu nguyên thủy để lưu trữ các giá trị số nguyên.
  • B. Một cơ chế để quản lý bộ nhớ và thu gom rác.
  • C. Một kiểu dữ liệu tham chiếu đại diện cho phương thức, thường dùng cho callback và xử lý sự kiện.
  • D. Một cách để tạo ra các lớp kế thừa đa hình.

Câu 12: Sự khác biệt chính giữa `List` và `HashSet` trong .NET Collections là gì?

  • A. `List` là bất biến (immutable), còn `HashSet` là khả biến (mutable).
  • B. `List` duy trì thứ tự các phần tử và cho phép trùng lặp, trong khi `HashSet` không duy trì thứ tự và không cho phép trùng lặp.
  • C. `List` được tối ưu hóa cho tìm kiếm phần tử, còn `HashSet` được tối ưu hóa cho thêm/xóa phần tử.
  • D. `List` chỉ chứa các kiểu dữ liệu giá trị, còn `HashSet` chỉ chứa các kiểu dữ liệu tham chiếu.

Câu 13: Cho đoạn code C# sau:

```csharp
int? nullableInt = null;
int regularInt = 10;

int result = nullableInt ?? regularInt;
```

Giá trị của `result` sau khi đoạn code trên thực thi là bao nhiêu và toán tử `??` trong C# được gọi là gì?

  • A. null, toán tử null-conditional.
  • B. 0, toán tử null-forgiving.
  • C. Giá trị sẽ không xác định, toán tử null-propagation.
  • D. 10, toán tử null-coalescing.

Câu 14: `ValueTask` trong C# được giới thiệu để cải thiện hiệu suất trong trường hợp nào so với `Task`?

  • A. Khi cần thực hiện các tác vụ CPU-bound nặng.
  • B. Khi làm việc với các tác vụ I/O kéo dài.
  • C. Khi tác vụ bất đồng bộ có khả năng hoàn thành đồng bộ (synchronously) một cách nhanh chóng.
  • D. Khi cần quản lý số lượng lớn các tác vụ bất đồng bộ.

Câu 15: Cho đoạn code C# sau:

```csharp
using System;

public class Example
{
public static void Main(string[] args)
{
Action greet = name =>
{
string greeting =

  • A. Generic delegate,
  • B. Biểu thức Lambda và Delegate,
  • C. Anonymous type,
  • D. Local function,

Câu 16: Interface và Abstract Class trong C# có điểm chung và khác biệt gì? Điểm khác biệt quan trọng nhất là gì?

  • A. Interface hỗ trợ đa kế thừa, Abstract Class thì không.
  • B. Abstract Class có thể chứa các thành viên private, Interface thì không.
  • C. Lớp có thể implement nhiều Interface nhưng chỉ kế thừa một Abstract Class.
  • D. Interface chỉ dùng cho kiểu dữ liệu giá trị, Abstract Class dùng cho kiểu dữ liệu tham chiếu.

Câu 17: Cho đoạn code C# sau:

```csharp
public class Counter
{
private int _count = 0;
public event EventHandler CountChanged;

public void Increment()
{
_count++;
OnCountChanged(EventArgs.Empty);
}

protected virtual void OnCountChanged(EventArgs e)
{
CountChanged?.Invoke(this, e);
}

public int Count => _count;
}

public class Subscriber
{
public void HandleCountChanged(object sender, EventArgs e)
{
Console.WriteLine(

  • A. Singleton pattern, không in ra gì.
  • B. Factory pattern,
  • C. Strategy pattern,
  • D. Observer pattern (Events),

Câu 18: Attribute trong C# được sử dụng để làm gì và chúng có ảnh hưởng trực tiếp đến runtime behavior của ứng dụng như thế nào?

  • A. Định nghĩa các quy tắc bảo mật cho ứng dụng.
  • B. Cung cấp metadata (thông tin mô tả) về code, có thể được reflection sử dụng để ảnh hưởng đến runtime behavior.
  • C. Tối ưu hóa hiệu suất thực thi của ứng dụng.
  • D. Thay đổi cấu trúc của assembly sau khi biên dịch.

Câu 19: Cho đoạn code C# sau:

```csharp
using System;
using System.Collections.Generic;

public class Example
{
public static void Main(string[] args)
{
List numbers = new List { 1, 2, 3, 4, 5 };
IEnumerable evenNumbersQuery = from num in numbers
where num % 2 == 0
select num;

foreach (int number in evenNumbersQuery)
{
Console.WriteLine(number);
}
}
}
```

Đoạn code trên sử dụng tính năng ngôn ngữ C# nào để truy vấn dữ liệu và nó sẽ in ra các số nào?

  • A. Reflection, in ra tất cả các số từ 1 đến 5.
  • B. Delegates, in ra số 0.
  • C. LINQ Query Syntax, in ra số 2 và 4.
  • D. Iterator, không in ra gì do lỗi cú pháp.

Câu 20: Phương thức `Dispose()` và interface `IDisposable` trong .NET được sử dụng để quản lý loại tài nguyên nào và tại sao?

  • A. Tài nguyên unmanaged (ví dụ: file handles, database connections) để giải phóng chúng một cách chủ động.
  • B. Bộ nhớ heap để tối ưu hóa việc sử dụng bộ nhớ.
  • C. CPU cycles để giảm tải cho bộ xử lý.
  • D. Các đối tượng .NET nói chung để thu gom rác nhanh hơn.

Câu 21: Sự khác biệt chính giữa `StringBuilder` và `string` trong C# khi làm việc với chuỗi là gì?

  • A. `string` nhanh hơn `StringBuilder` trong hầu hết các trường hợp.
  • B. `string` là immutable, còn `StringBuilder` là mutable, nên `StringBuilder` hiệu quả hơn cho thao tác chuỗi phức tạp.
  • C. `StringBuilder` chỉ dùng cho chuỗi số, còn `string` dùng cho chuỗi văn bản.
  • D. `string` tự động quản lý bộ nhớ, còn `StringBuilder` yêu cầu giải phóng bộ nhớ thủ công.

Câu 22: Cho đoạn code C# sau:

```csharp
using System;

public class Example
{
public static void Main(string[] args)
{
int[] numbers = { 1, 2, 3, 4, 5 };
Span span = numbers.AsSpan().Slice(1, 3);

foreach (int number in span)
{
Console.WriteLine(number);
}
}
}
```

Đoạn code trên sử dụng kiểu dữ liệu `Span` để làm gì và nó sẽ in ra các số nào?

  • A. Tạo bản sao của mảng, in ra tất cả các số từ 1 đến 5.
  • B. Đảo ngược mảng, in ra số 5, 4, 3.
  • C. Tạo view (slice) của mảng mà không copy dữ liệu, in ra số 2, 3, 4.
  • D. Chuyển đổi mảng sang List, in ra số 1, 3, 5.

Câu 23: `async void` method trong C# nên được sử dụng trong trường hợp nào và có những rủi ro gì khi sử dụng?

  • A. Khi cần trả về một giá trị từ tác vụ bất đồng bộ.
  • B. Khi muốn thực hiện các tác vụ song song.
  • C. Khi cần tối ưu hóa hiệu suất của ứng dụng web.
  • D. Chủ yếu dùng cho event handlers; rủi ro là khó bắt lỗi và xử lý ngoại lệ trong method.

Câu 24: Sự khác biệt chính giữa `struct` và `class` trong C# là gì về mặt bản chất và cách chúng được lưu trữ trong bộ nhớ?

  • A. `struct` là kiểu giá trị (value type), lưu trên stack; `class` là kiểu tham chiếu (reference type), lưu trên heap.
  • B. `struct` hỗ trợ kế thừa, `class` thì không.
  • C. `struct` tự động thu gom rác, `class` cần `Dispose()` để giải phóng tài nguyên.
  • D. `struct` chỉ chứa dữ liệu, `class` có thể chứa cả dữ liệu và phương thức.

Câu 25: Cho đoạn code C# sau:

```csharp
using System;

public class Example
{
public static void Main(string[] args)
{
string str1 =

  • A. false, so sánh phân biệt chữ hoa chữ thường.
  • B. true, so sánh không phân biệt chữ hoa chữ thường.
  • C. false, so sánh dựa trên collation theo văn hóa hiện tại.
  • D. true, so sánh dựa trên độ dài chuỗi.

Câu 26: Generic trong C# giúp giải quyết vấn đề gì và mang lại lợi ích chính nào trong lập trình?

  • A. Tăng tốc độ biên dịch của chương trình.
  • B. Giảm dung lượng bộ nhớ sử dụng bởi ứng dụng.
  • C. Tái sử dụng code, type safety và hiệu suất cao hơn khi làm việc với nhiều kiểu dữ liệu.
  • D. Cho phép kế thừa đa lớp trong C#.

Câu 27: Cho đoạn code C# sau:

```csharp
using System;

public class Example
{
public static void Main(string[] args)
{
int x = 5;
Action closure = () => Console.WriteLine(x);
x = 10;
closure();
}
}
```

Đoạn code trên minh họa khái niệm closure trong C# và nó sẽ in ra giá trị nào?

  • A. 5, do biến x được capture theo giá trị.
  • B. Không in ra gì, do lỗi biên dịch.
  • C. Giá trị không xác định, do race condition.
  • D. 10, do closure capture biến x theo tham chiếu.

Câu 28: Extension methods trong C# có thể được sử dụng để mở rộng các kiểu dữ liệu nào?

  • A. Chỉ các lớp không sealed.
  • B. Chỉ các interface và abstract classes.
  • C. Chỉ các kiểu dữ liệu value type (structs và enums).
  • D. Bất kỳ kiểu dữ liệu nào, bao gồm cả sealed classes, structs, interfaces và generic types.

Câu 29: Cho đoạn code C# sau:

```csharp
using System;

public class Example
{
public static void Main(string[] args)
{
var numbers = new int[] { 1, 2, 3, 4, 5 };
ref int firstElement = ref numbers[0];
firstElement = 100;
Console.WriteLine(numbers[0]);
}
}
```

Đoạn code trên sử dụng `ref` keyword để làm gì và nó sẽ in ra giá trị nào?

  • A. Tạo bản sao của phần tử mảng, in ra 1.
  • B. Tạo tham chiếu đến phần tử mảng, in ra 100.
  • C. Truy cập phần tử mảng một cách bất đồng bộ, in ra giá trị ngẫu nhiên.
  • D. Không biên dịch được, do sử dụng `ref` không đúng cách.

Câu 30: Trong ngữ cảnh đa luồng (.NET Threading), race condition là gì và làm thế nào để phòng tránh nó?

  • A. Một lỗi xảy ra khi có quá nhiều luồng được tạo ra.
  • B. Tình trạng deadlock khi các luồng chờ đợi lẫn nhau vô thời hạn.
  • C. Xảy ra khi kết quả phụ thuộc vào thứ tự thực thi không xác định của các luồng; phòng tránh bằng đồng bộ hóa truy cập tài nguyên chia sẻ.
  • D. Một loại exception xảy ra khi truy cập bộ nhớ ngoài phạm vi.

1 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 3

Câu 1: Trong .NET, Common Language Runtime (CLR) đóng vai trò trung tâm. Chức năng chính nào sau đây KHÔNG thuộc về CLR?

2 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 3

Câu 2: Cho đoạn mã C# sau:

```csharp
List numbers = new List { 1, 2, 3, 4, 5 };
var evenNumbers = numbers.Where(n => n % 2 == 0);
```

`evenNumbers` trong đoạn mã trên là kiểu dữ liệu nào và nó đại diện cho điều gì?

3 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 3

Câu 3: Trong lập trình hướng đối tượng với C#, 'tính đóng gói' (encapsulation) mang lại lợi ích chính nào sau đây?

4 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 3

Câu 4: Phương thức mở rộng (Extension method) trong C# cho phép bạn làm gì?

5 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 3

Câu 5: Cho đoạn code C# sau:

```csharp
string message = null;
try
{
Console.WriteLine(message.Length);
}
catch (NullReferenceException ex)
{
Console.WriteLine("Lỗi: " + ex.Message);
}
finally
{
Console.WriteLine("Khối finally luôn được thực thi");
}
```

Đoạn code trên sẽ in ra màn hình những gì theo thứ tự nào?

6 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 3

Câu 6: Trong ASP.NET Core, Middleware pipeline đóng vai trò quan trọng trong việc xử lý request. Middleware KHÔNG chịu trách nhiệm cho công việc nào sau đây?

7 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 3

Câu 7: Dependency Injection (DI) là một nguyên tắc thiết kế quan trọng trong .NET. Lợi ích chính của việc sử dụng DI là gì?

8 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 3

Câu 8: Trong Entity Framework Core, 'Migrations' được sử dụng để làm gì?

9 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 3

Câu 9: Async và Await trong C# được sử dụng để giải quyết vấn đề gì chính trong lập trình?

10 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 3

Câu 10: Cho đoạn code C# sau:

```csharp
public interface ICalculator
{
int Add(int a, int b);
}

public class BasicCalculator : ICalculator
{
public int Add(int a, int b) => a + b;
}

public class AdvancedCalculator : ICalculator
{
public int Add(int a, int b) => a + b + 10; // Thêm 10
}

public class CalculatorService
{
private readonly ICalculator _calculator;

public CalculatorService(ICalculator calculator)
{
_calculator = calculator;
}

public int PerformCalculation(int x, int y)
{
return _calculator.Add(x, y);
}
}

// ... trong Startup.cs hoặc Program.cs:
// services.AddScoped();

// ... ở đâu đó trong code:
// var service = serviceProvider.GetService();
// int result = service.PerformCalculation(5, 3);
```

Nếu cấu hình Dependency Injection được thiết lập để `ICalculator` được resolve thành `BasicCalculator`, giá trị của `result` sẽ là bao nhiêu?

11 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 3

Câu 11: Delegate trong C# là gì và nó thường được sử dụng cho mục đích nào?

12 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 3

Câu 12: Sự khác biệt chính giữa `List` và `HashSet` trong .NET Collections là gì?

13 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 3

Câu 13: Cho đoạn code C# sau:

```csharp
int? nullableInt = null;
int regularInt = 10;

int result = nullableInt ?? regularInt;
```

Giá trị của `result` sau khi đoạn code trên thực thi là bao nhiêu và toán tử `??` trong C# được gọi là gì?

14 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 3

Câu 14: `ValueTask` trong C# được giới thiệu để cải thiện hiệu suất trong trường hợp nào so với `Task`?

15 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 3

Câu 15: Cho đoạn code C# sau:

```csharp
using System;

public class Example
{
public static void Main(string[] args)
{
Action greet = name =>
{
string greeting = "Hello " + name + "!";
Console.WriteLine(greeting);
};

greet("World");
}
}
```

Đoạn code trên minh họa khái niệm gì trong C# và nó sẽ in ra màn hình dòng chữ nào?

16 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 3

Câu 16: Interface và Abstract Class trong C# có điểm chung và khác biệt gì? Điểm khác biệt quan trọng nhất là gì?

17 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 3

Câu 17: Cho đoạn code C# sau:

```csharp
public class Counter
{
private int _count = 0;
public event EventHandler CountChanged;

public void Increment()
{
_count++;
OnCountChanged(EventArgs.Empty);
}

protected virtual void OnCountChanged(EventArgs e)
{
CountChanged?.Invoke(this, e);
}

public int Count => _count;
}

public class Subscriber
{
public void HandleCountChanged(object sender, EventArgs e)
{
Console.WriteLine("Count đã thay đổi: " + ((Counter)sender).Count);
}
}

// ... trong Main:
// Counter counter = new Counter();
// Subscriber subscriber = new Subscriber();
// counter.CountChanged += subscriber.HandleCountChanged;
// counter.Increment();
```

Đoạn code trên minh họa pattern thiết kế nào và khi `counter.Increment()` được gọi, nó sẽ in ra gì?

18 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 3

Câu 18: Attribute trong C# được sử dụng để làm gì và chúng có ảnh hưởng trực tiếp đến runtime behavior của ứng dụng như thế nào?

19 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 3

Câu 19: Cho đoạn code C# sau:

```csharp
using System;
using System.Collections.Generic;

public class Example
{
public static void Main(string[] args)
{
List numbers = new List { 1, 2, 3, 4, 5 };
IEnumerable evenNumbersQuery = from num in numbers
where num % 2 == 0
select num;

foreach (int number in evenNumbersQuery)
{
Console.WriteLine(number);
}
}
}
```

Đoạn code trên sử dụng tính năng ngôn ngữ C# nào để truy vấn dữ liệu và nó sẽ in ra các số nào?

20 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 3

Câu 20: Phương thức `Dispose()` và interface `IDisposable` trong .NET được sử dụng để quản lý loại tài nguyên nào và tại sao?

21 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 3

Câu 21: Sự khác biệt chính giữa `StringBuilder` và `string` trong C# khi làm việc với chuỗi là gì?

22 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 3

Câu 22: Cho đoạn code C# sau:

```csharp
using System;

public class Example
{
public static void Main(string[] args)
{
int[] numbers = { 1, 2, 3, 4, 5 };
Span span = numbers.AsSpan().Slice(1, 3);

foreach (int number in span)
{
Console.WriteLine(number);
}
}
}
```

Đoạn code trên sử dụng kiểu dữ liệu `Span` để làm gì và nó sẽ in ra các số nào?

23 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 3

Câu 23: `async void` method trong C# nên được sử dụng trong trường hợp nào và có những rủi ro gì khi sử dụng?

24 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 3

Câu 24: Sự khác biệt chính giữa `struct` và `class` trong C# là gì về mặt bản chất và cách chúng được lưu trữ trong bộ nhớ?

25 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 3

Câu 25: Cho đoạn code C# sau:

```csharp
using System;

public class Example
{
public static void Main(string[] args)
{
string str1 = "hello";
string str2 = "HELLO";

bool isEqual = string.Equals(str1, str2, StringComparison.OrdinalIgnoreCase);
Console.WriteLine(isEqual);
}
}
```

Giá trị của `isEqual` sau khi đoạn code trên thực thi là gì và `StringComparison.OrdinalIgnoreCase` có ý nghĩa gì?

26 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 3

Câu 26: Generic trong C# giúp giải quyết vấn đề gì và mang lại lợi ích chính nào trong lập trình?

27 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 3

Câu 27: Cho đoạn code C# sau:

```csharp
using System;

public class Example
{
public static void Main(string[] args)
{
int x = 5;
Action closure = () => Console.WriteLine(x);
x = 10;
closure();
}
}
```

Đoạn code trên minh họa khái niệm closure trong C# và nó sẽ in ra giá trị nào?

28 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 3

Câu 28: Extension methods trong C# có thể được sử dụng để mở rộng các kiểu dữ liệu nào?

29 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 3

Câu 29: Cho đoạn code C# sau:

```csharp
using System;

public class Example
{
public static void Main(string[] args)
{
var numbers = new int[] { 1, 2, 3, 4, 5 };
ref int firstElement = ref numbers[0];
firstElement = 100;
Console.WriteLine(numbers[0]);
}
}
```

Đoạn code trên sử dụng `ref` keyword để làm gì và nó sẽ in ra giá trị nào?

30 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình .net

Tags: Bộ đề 3

Câu 30: Trong ngữ cảnh đa luồng (.NET Threading), race condition là gì và làm thế nào để phòng tránh nó?

Xem kết quả