CÂU HỎI PHỎNG VẤN C#/.NET THƯỜNG GẶP

Hybrid Technologies đã tổng hợp lại một số các câu hỏi mà nhà tuyển dụng hay đề cập để trao đổi khi phỏng vấn vị trí ứng tuyển sử dụng ngôn ngữ C#. Để giúp cho các bạn chuẩn bị tâm lí trước buổi phỏng vấn và tự tin “chiến thắng” trong quá trình tìm kiếm công việc của bạn, hãy cùng chúng mình đọc bài viết dưới đây nhé!

Việc chuẩn bị đầu tiên đó là kiến thức căn bản về ngôn ngữ C#, tiếp theo đó là hiểu sâu về ngôn ngữ này và chuẩn bị các tình huống thường gặp trong khi phỏng vấn như dưới đây.

1. Cơ bản về lập trình OOP?

OOP là lập trình hướng đối tượng, nó gồm 4 tính chất (Mỗi tính chất các bạn phải hiểu và lấy ví dụ, đồng thời nêu ra được tác dụng của nó):

  1. Tính đóng gói (Encapsulation): Là cách để che dấu những tính chất xử lý bên trong của đối tượng, những đối tượng khác không thể tác động trực tiếp làm thay đổi trạng thái chỉ có thể tác động thông qua các method public của đối tượng đó.
  2. Tính kế thừa (Inheritance): Là kỹ thuật cho phép kế thừa lại những tính năng mà một đối tượng cha đã có, giúp tránh việc code lặp dư thừa mà chỉ xử lý công việc tương tự.
  3. Tính đa hình (Polymorphism ): Là một đối tượng thuộc các lớp khác nhau có thể hiểu cùng một thông điệp theo cách khác nhau.
  4. Tính trừu tượng (Abstraction): Là phương pháp trừu tượng hóa định nghĩa lên những hành động, tính chất của loại đối tượng nào đó cần phải có.

2. Ngôn ngữ lập trình C#

Về ngôn ngữ lập trình C#, các bạn không cần thiết phải biết mọi thứ nhưng một số điểm các bạn nên biết là về Interface và Abstract class hay có kiến thức về các collection trong C# .NET.

Ngoài ra các bạn cũng cần hiểu về đa luồng, extension methods, delegate, xử lý bất đồng bộ, overriding method, và tổng quan các thư viện hay dùng nhất.

Câu 1: Thế nào là 1 object?

  • Là một kiểu dữ liệu cơ bản của tất cả các kiểu dữ liệu trong .NET.
  • Mọi kiểu dữ liệu đều được kế thừa từ System.Object
  • Thuộc kiểu dữ liệu tham chiếu
  • Kiểu dữ liệu object cung cấp một số phương thức ảo cho phép mình overload để sử dụng

Một số phương thức tiêu biểu nằm trong object:

Phương thức Ý nghĩa
ToString() Trả về kiểu chuỗi của đối tượng(chuyển từ kiểu dữ liệu nào đó về kiểu chuỗi)
GetHashCode() Trả về mã băm của đối tượng.
Equals So sánh 2 đối tượng và trả về true khi hai đối tượng có giá trị bằng nhau, ngược lại thì trả về false.
GetType() Trả về kiểu dữ liệu cảu đối tượng.

 

Câu 2: Một constructor là gì?

Constructor (hàm tạo/hàm dựng) là một loại thành viên đặc biệt trong class C#. Nhiệm vụ của nó là khởi tạo object của class. Mỗi khi gọi lệnh khởi tạo, thực tế là bạn đang gọi đến constructor.

Câu 3: Sự khác nhau giữa abstract class và interface?

  • Cả hai được sử dụng để thu được tính trừu tượng, từ đó có thể khai báo các phương thức trừu tượng
  • Có thể thừa kế nhiều interface nhưng chỉ được thừa kế từ một abstract class
  • Có thể viết sẵn các thực thi trong abstract class nhưng interface thì không
  • Interface dùng để gom lại các hoạt động cần được thực hiện, các khả năng của một đôi tượng (VD: con người và xe cộ có khả năng đi lại ). Còn abstract class cho các lớp thừa kế cùng một loại , tính chất hay trạng thái (VD: đàn ông, phụ nữ, trẻ con … )

Câu 4: Sự khác nhau của static readonly và const?

  • Static readonly: là hằng số được khởi tạo khi thực thi chương trình
  • Const: là hằng số được khởi tạo khi biên dịch chương trình

Câu 5: Interface là gì?

Interface được xem như là một lớp, lớp đó có thể được một class hoặc struct khác implement nó.

Câu 6: Thế nào là attribute trong C#?

  • Thuộc tính (attribute) trong C#, là một thẻ khai báo, được sử dụng để truyền thông tin tới runtime về các hành vi của các phần tử khác nhau như các lớp, phương thức, cấu trúc, enum, assembly… trong chương trình của bạn.
  • Các Attribute được sử dụng để thêm metadata, ví dụ như chỉ lệnh biên dịch và thông tin khác như comment, mô tả, phương thức và các lớp vào một chương trình.

Câu 7: Hãy so sánh giữa interface và abstract?

Giống nhau:

  • Không thể khởi tạo đối tượng bên trong
  • Có thể khai báo các phương thức nhưng không thực hiện chúng
  • Bao gồm các phương thức abstract
  • Được thực thi từ các class con hay còn gọi kế thừa, dẫn xuất
  • Có thể kế thừa từ nhiều interface

Khác nhau:

Abstract Class Interface
  • Cho phép khai báo field
  • Không cho phép
  • Các phương thức có thể có thân hàm hoặc không có thân hàm.
  • Chỉ khai báo không có thân hàm
  • Class dẫn xuất chỉ kế thừa được từ 1 abstract class và nhiều interface.
  • Class triển khai có thể triển khai nhiều interface.
  • Có chứa constructor
  • Không có
  • Các phương thức có từ khóa access modifier
  • Không có

 

Câu 8: Sự khác nhau giữa override và overload là gì?

Override Overload
  • Kiểu dữ liệu trả về, tên phương thức, danh sách tham số của phương thức override và phương thức được override phải giống nhau.
  • Kiểu dữ liệu trả về của các phương thức overload có thể giống nhau hoặc khác nhau.– Số lượng tham số hoặc kiểu dữ liệu của tham số ở các phương thức overload phải khác nhau.
  • Không thể thu hẹp phạm vi truy cập(access modifier) của phương thức được override.
  • Có thể mở rộng hoặc thu hẹp phạm vi truy cập(access modifier) của phương thức được overload.
  • Không thể overriding constructor method.
  • Overloading được constructor method.
  • Chỉ thực hiện được đối với các class có quan hệ kế thừa. Do đó overriding thực hiện ở ngoài phạm vi của một class.
  • Chỉ thực hiện trong cùng phạm vi, trong nội bộ của một class.
  • Là hình thức đa hình khi chạy(runtime) (tức là chỉ khi chương trình chạy, thì chúng ta mới biết phương thức được gọi từ lớp nào).
  • Là hình thức đa hình khi biên dịch(compiler) (tức là khi biên dịch mới biết đang sử dụng phương thức ở trong lớp nào).
  • Không cho phép tạo ra những ngoại lệ khác loại hoặc không phải đối tượng thuộc lớp con của lớp có thể hiện là ngoại lệ từ phương thức được override.
  • Cho phép tạo ra những ngoại lệ hoàn toàn mới so với những ngoại lệ từ phương thức được overload.

 

Có thể nói, phỏng vấn gần như là giai đoạn cuối cùng trên con đường tìm việc của bạn, quyết định đến 80% khả năng được nhận vào vị trí này hay không. Nó giống như một kỳ thi vấn đáp nhưng sẽ khó khăn hơn rất nhiều, bởi ngoài kiến thức chuyên môn bạn còn cần thể hiện nhiều phẩm chất khác phù hợp với công việc và văn hoá của nhà tuyển dụng. Chúc các bạn luôn tự tin và thành công!

Nguồn: Sưu Tầm.

Facebook Comments
Đánh giá bài viết

Bạn thích bài viết này chứ?
Đăng ký để nhận những bài viết thú vị như thế hàng tuần.

Đừng sợ thất bại, chỉ sợ việc dậm chân tại chỗ

TÌM VIỆC
Bình luận