Assignment Help logo
Trò Chuyện Trực Tuyến

Loading...

Score %0 (0 correct0 incorrect20 unanswered)

Q1. Trong những tình huống nào thì giao diện tốt hơn so với các lớp trừu tượng?

  • Khi bạn cần xác định các đặc điểm của một loại đối tượng, hãy sử dụng một giao diện. Khi bạn cần xác định các khả năng của một loại đối tượng, hãy sử dụng một lớp trừu tượng.
  • Các giao diện là dạng cũ của C#, và có thể thay thế bằng tính năng lớp trừu tượng mới hơn.
  • Khi bạn cần một danh sách các khả năng và dữ liệu mà không phụ thuộc vào các lớp, hãy sử dụng một giao diện. Khi bạn cần một loại đối tượng cụ thể chia sẻ các đặc điểm, hãy sử dụng một lớp trừu tượng.
  • Bạn nên sử dụng cả một giao diện và một lớp trừu tượng khi định nghĩa một đối tượng phức tạp nào đó.

Q2. Tuyên bố nào đúng về delegates?

  • Delegates không được hỗ trợ trong phiên bản hiện tại của C#
  • Chúng không thể được sử dụng như là các callback.
  • Chỉ có biến có thể được truyền vào delegates dưới dạng tham số.
  • Chúng có thể được nối với nhau.

Tài liệu chính thức: Delegates

Q3. Lựa chọn nào mô tả tốt nhất mô hình lập trình bất đồng bộ của C#?

  • phản ứng
  • callback kế thừa
  • dựa trên nhiệm vụ
  • dựa trên callback

Tài liệu chính thức: Mô hình lập trình bất đồng bộ dựa trên nhiệm vụ resposta correta --> var contacts = new List<string>();

Q4. Làm thế nào để xác định một lớp có một thuộc tính cụ thể hay không?

  • .
var type = typeof(SomeType);
var attribute = type.GetCustomAttribute<SomeAttribute>();
  • .
var typeof(MyPresentationModel).Should().BeDecoratedWith<SomeAttribute>();
  • .
Attribute.GetCustomAttribute, typeof(SubControllerActionToViewDataAttribute)
  • .
Attribute.GetCustomAttribute(typeof(ExampleController), typeof(SubControllerActionToViewDataAttribute))
  1. Tài liệu chính thức: Lớp Attribute
  2. Tài liệu chính thức: Phương thức Attribute.GetCustomAttribute

Q5. Sự khác biệt giữa các từ khóa ref và out là gì?

  • Biến được chuyển để chỉ định rằng tham số là một tham số đầu ra, trong khi ref chỉ định rằng một biến có thể được chuyển vào một hàm mà không cần được khởi tạo.
  • Biến được chuyển vào ref có thể được chuyển vào một hàm mà không cần được khởi tạo, trong khi out chỉ định rằng giá trị là một giá trị tham chiếu có thể được thay đổi trong phương thức gọi.
  • Biến được chuyển vào out có thể được chuyển vào một hàm mà không cần được khởi tạo, trong khi ref chỉ định rằng giá trị là một giá trị tham chiếu có thể được thay đổi trong phương thức gọi.
  • Biến được chuyển vào ref chỉ định rằng tham số là một tham số đầu ra, trong khi out chỉ định rằng một biến có thể được chuyển vào một hàm mà không cần được khởi tạo.
  1. Tài liệu chính thức: ref
  2. Tài liệu chính thức: modififer tham số out

Q6. Làm thế nào để truy xuất thông tin về một lớp, cũng như tạo một thể hiện vào thời gian chạy?

  • phản chiếu (reflection)
  • serialization
  • trừu tượng (abstraction)
  • dependency injection

Tài liệu chính thức: Reflection

Q7. Đoạn mã này là một ví dụ về điều gì?

    private static object objA;
    private static object objB;

    private static void performTaskA()
    {
        lock (objB)
        {
            Thread.Sleep(1000);
            lock (objA) { }
        }
    }

    private static void PerformTaskB()
    {
        lock (objA)
        {
            lock (objB) { }
        }
    }
  • một lớp riêng tư sử dụng đa luồng
  • mã đa luồng
  • quản lý luồng không chính xác
  • một khả năng bị kẹt tiềm ẩn

Tài liệu chính thức: Deadlocks and race conditions

Q8. Sự khác biệt giữa một kiểu ẩn danh và một kiểu dữ liệu thông thường là gì?

  • Các kiểu ẩn danh không có tên kiểu
  • Các kiểu ẩn danh chỉ có thể là tĩnh (static)
  • Các kiểu ẩn danh chỉ có thể được sử dụng trong cấu trúc (structs)
  • Các kiểu ẩn danh không hoạt động với LINQ.

Tài liệu chính thức: Anonymous Types

Q9. Khi nào bạn nên sử dụng một Dictionary thay vì một kiểu mảng (Array) trong ứng dụng của bạn?

  • Khi bạn cần một cấu trúc bộ sưu tập mảng răng cưa
  • Khi bạn cần lưu trữ các giá trị của cùng một loại
  • Khi bạn cần lưu trữ các cặp khóa-giá trị thay vì giá trị đơn
  • Khi bạn cần một danh sách có thứ tự, có thể tìm kiếm

Tài liệu chính thức: Lớp Dictionary<TKey,TValue>

Q10. Sự khác biệt giữa a.Equals(b) và a == b là gì?

  • Phương thức .Equals so sánh các định danh tham chiếu trong khi == so sánh nội dung.
  • Phương thức .Equals so sánh các giá trị nguyên thuỷ trong khi == so sánh tất cả các giá trị.
  • Phương thức .Equals so sánh nội dung trong khi == so sánh định danh tham chiếu.
  • Phương thức .Equals so sánh các loại tham chiếu trong khi == so sánh các loại giá trị nguyên thuỷ
  1. Tài liệu chính thức: Object.Equals
  2. c-sharpcorner: Toán tử Equal(==) so với Phương thức Equals()

Q11. Lựa chọn nào mô tả tốt nhất tình huống bị kẹt?

  • khi bạn cố gắng khởi tạo hai đối tượng cùng một lúc trong cùng một lớp hoặc cấu trúc
  • khi bạn cố gắng thực hiện một hành động sau khi một sự kiện người dùng được đăng ký
  • khi các hướng dẫn đồng thời đang chờ đợi lẫn nhau để hoàn thành trước khi thực hiện
  • khi bạn cố gắng thực hiện một loạt các sự kiện đồng thời trên nhiều luồng

Tài liệu chính thức: Deadlocks and race conditions

Q12. Từ khóa async hoạt động như thế nào?

  • Nó cho phép truy cập vào các phương thức bất đồng bộ trong API C#
  • Nó cho phép việc gom nhóm luồng và các quy trình đồng bộ trong các lớp tĩnh.
  • Nó cho phép sử dụng từ khóa await trong một phương thức
  • Nó cho phép truy cập vào các phương thức đồng bộ trong API C#

Tài liệu chính thức: async

Q13. Một đối tượng trong C# là gì?

  • một lớp hoặc cấu trúc, bao gồm các biến và hàm của nó
  • một loại dữ liệu nguyên thuỷ chỉ có thể được tạo ra tại thời gian biên dịch
  • một loại giá trị chỉ có thể được sử dụng với một lớp trừu tượng
  • một thể hiện của một lớp hoặc cấu trúc bao gồm các trường, thuộc tính và/hoặc phương thức

Tài liệu chính thức: Đối tượng

Q14. Đoạn mã nào khai báo một kiểu ẩn danh được đặt tên là userData?

  • var<<!---->T> userData = new <<!---->T> { name = "John", age = 32 };
  • var userData = new { name = "John", age = 32 };
  • AType userData = new AType { name = "John", age = 32 };
  • Anonymous<T> userData = new Anonymous<T> { name = "John", age = 32 };

Tài liệu chính thức: Kiểu ẩn danh

Q15. Kết quả trả về khi phương thức này được thực thi là gì?

public void userInput(string charParameters) { }

  • Không gì
  • Một Boolean
  • Một biến string
  • Một số nguyên

Tài liệu chính thức: void

Q16. Trong trường hợp nào tên của những người làm việc trong ví dụ này sẽ được in ra màn hình?

string[] employees = { "Joe", "Bob", "Carol", "Alice", "Will" };

IEnumerable<string> employeeQuery = from person in employees
                                    orderby person
                                    select person;

foreach(string employee in employeeQuery)
{
    Console.WriteLine(employee);
}
  • tăng dần
  • không thứ tự
  • giảm dần
  • đầu vào, đầu ra

dotnetpattern: Toán tử LINQ OrderBy

Q17. Biểu thức Lambda thường được sử dụng cùng với cái nào sau đây?

  • không gian tên (Namespaces)
  • LINQ
  • Tên loại (Type Aliasing)
  • Bộ hợp nhất (Assemblies)

Tài liệu chính thức: Tổng quan về Query Ngôn ngữ Tích hợp (LINQ)

Q18. Định dạng đúng cho nhận xét một dòng và nhiều dòng là gì?

  • /_/ - Một Dòng /_ - Nhiều Dòng
  • // Nhiều Dòng /_ Một Dòng _/
  • //\* Nhiều Dòng / Một Dòng
  • // Một Dòng /* Nhiều Dòng */

w3schools: Nhận xét C#

Q19. Làm thế nào để làm cho một phương thức trong một lớp trừu tượng có thể ghi đè?

  • Làm cho nó public
  • Làm cho nó static
  • Làm cho nó private
  • Làm cho nó virtual
  1. Tài liệu chính thức: virtual
  2. Tài liệu chính thức: abstract

Q20. Bạn sẽ viết mã cho một thuộc tính số nguyên gọi là Tuổi với một getter và setter như thế nào?

  • public int Age { get - set }
  • public int Age: get set;
  • public int Age (get, set );
  • public int Age { get; set; }

Tài liệu chính thức: Sử dụng Thuộc tính