Từ khóa Dynamic trong C#

Khóa học lập trình C# căn bản

5.0 (10 đánh giá)
Tạo bởi Trần Thành Vi Thanh Cập nhật lần cuối 11:53 20-07-2020 89.327 lượt xem 4 bình luận
Tác giả/Dịch giả: Trần Thành Vi Thanh
Học nhanh

Danh sách bài học

Từ khóa Dynamic trong C#

Dẫn nhập

Ở các bài học trước, chúng ta đã cùng nhau tìm hiểu về KIỂU DỮ LIỆU OBJECT TRONG C#. Hôm nay chúng ta sẽ tiếp tục tìm hiểu kiểu dữ liệu tham chiếu tiếp theo đó là kiểu dữ liệu dynamic.


Nội dung

Để đọc hiểu bài này tốt nhất các bạn nên có kiến thức cơ bản về các phần:

Trong bài học này, chúng ta sẽ cùng tìm hiểu các vấn đề:

  • Từ khóa dynamic trong C#
  • Phân biệt object, vardynamic.

Từ khóa dynamic trong C#

Từ khóa dynamic là từ khóa dùng để khai báo kiểu dynamic. Kiểu dynamic là một khái niệm mới được đưa vào trong C# 4.0.

Cú pháp khai báo kiểu dynamic hoàn toàn tương tự như khai báo biến bình thường:

dynamic <tên biến>;

Trong đó:

  • dynamic là từ khóa.
  • <tên biến> là tên do người dùng đặt.

Đặc điểm của kiểu dynamic:

  • Các đối tượng thuộc kiểu dynamic sẽ không xác định được kiểu cho đến khi chương trình được thực thi. Tức là trình biên dịch sẽ bỏ qua tất cả lỗi về cú pháp, việc kiểm tra này sẽ thực hiện khi chương trình thực thi.
// Khai báo biến StringValue kiểu dynamic và khởi tạo giá trị là một chuỗi kiểu string
dynamic StringValue = "HowKteam";
/* 
* Chúng ta biết rằng kiểu chuỗi không hỗ trợ toán tử ++
* Nhưng câu lệnh StringValue++ vẫn không báo lỗi là do ở thời điểm hiện tại trình biên dịch vẫn chưa xác định kiểu dữ liệu cho biến StringValue
* Khi chạy chương trình thì lúc này C# mới phát hiện biến StringValue là kiểu string và không thể thực hiện toán tử ++ lúc đó sẽ xuất hiện lỗi
*/
StringValue++;

Khi chạy chương trình trên ta sẽ nhận được lỗi sau:

Từ khóa Dynamic trong C#, C# cơ bản, tự học C#, Kteam, HowKteam

  • Hỗ trợ Dynamic programming (lập trình động) cho ngôn ngữ lập trình sử dụng kiểu dữ liệu tĩnh như C#.
  • Giúp cải thiện khả năng tương thích với các ngôn ngữ và nền tảng (frameworks) động.
  • Giúp việc viết code đơn giản và nhanh hơn.
  • Có thể ép kiểu qua lại với các kiểu dữ liệu khác một cách bình thường (các cách ép kiểu đã trình bày trong bài ÉP KIỂU TRONG C#).

Ví dụ chương trình sử dụng dynamic:

// Khai báo 2 biến Name và Mission kiểu string và khởi tạo giá trị.
string Name = "HowKteam ";
string Mission = "Free Education";

/* 
 * Thực hiện gán 1 biến kiểu string cho biến kiểu dynamic bằng cách ép kiểu ngầm định (implicit)
 * Sau phép gán này thì biến DynamicValue chứa giá trị là "Free Education" nhưng kiểu dữ liệu của nó vẫn chưa được xác định.
*/
dynamic DynamicName = Name;

// Thực hiện cộng chuỗi và in ra màn hình bình thường
Console.WriteLine("Mission of " + DynamicName + " is " + Mission);

Kết quả khi chạy chương trình trên là:

Từ khóa Dynamic trong C#, C# cơ bản, tự học C#, Kteam, HowKteam


Phân biệt object, var và dynamic

Về khái niệm thì:

  • Object là kiểu dữ liệu cơ bản của tất cả kiểu dữ liệu trong C#.
  • Var là một từ khóa để khai báo một cách ngầm định kiểu dữ liệu và kiểu anonymous (kiểu anonymous sẽ được trình bày ở những bài sau).
  • Dynamic là một từ khóa để khai báo kiểu dynamic. Kiểu dynamic cũng có thể tương tác với mọi kiểu dữ liệu nhưng khác object, biến kiểu dynamic chỉ được xác định kiểu dữ liệu khi chương trình thực thi.

Chúng ta cùng phân biệt object, vardynamic qua bảng tổng hợp sau

Đặc điểm

Object

Var

Dynamic

Là một kiểu dữ liệu

Phải

Về bản chất thì var dynamic đều là từ khóa không phải kiểu dữ liệu

Phải khởi tạo giá trị khi khai báo

Không bắt buộc

Bắt buộc

Không bắt buộc

Sử dụng để làm kiểu trả về hoặc tham số cho hàm

Không

Có khả năng ép kiểu qua lại với các kiểu dữ liệu khác

Không

Thời điểm xác định kiểu dữ liệu thực sự

Là một kiểu dữ liệu nên không cần xác định gì nữa

Xác định ngay tại khai báo thông qua giá trị được gán vào

Xác định khi chương trình thực thi


Kết luận

Qua bài này chúng ta đã nắm được cách sử dụng từ khóa dynamic trong C#.

Bài sau chúng ta sẽ tìm hiểu về CẤU TRÚC LẶP CƠ BẢN TRONG C#.

Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của mình để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó”.


Tải xuống

Tài liệu

Nhằm phục vụ mục đích học tập Offline của cộng đồng, Kteam hỗ trợ tính năng lưu trữ nội dung bài học Từ khóa Dynamic trong C# dưới dạng file PDF trong link bên dưới.

Ngoài ra, bạn cũng có thể tìm thấy các tài liệu được đóng góp từ cộng đồng ở mục TÀI LIỆU trên thư viện Howkteam.com

Đừng quên likeshare để ủng hộ Kteam và tác giả nhé!


Thảo luận

Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.

Nội dung bài viết

Tác giả/Dịch giả

Mỗi buổi sáng thức dậy, bạn có 2 lựa chọn, tiếp tục ngủ để mơ những giấc mơ hoặc thức dậy và theo đuổi chúng!

Khóa học

Khóa học lập trình C# căn bản

Bạn mới bắt đầu học lập trình? Bạn đang muốn học thêm ngôn ngữ lập trình mới? C# là lựa chọn hoàn hảo để đáp ứng các nhu cầu trên.

Ngôn ngữ C# là một ngôn ngữ mới, cấu trúc rõ ràng, dễ hiểu và dễ học. C# thừa hưởng những ưu việt từ ngôn ngữ Java, C, C++ cũng như khắc phục được những hạn chế của các ngôn ngữ này. C# là ngôn ngữ lập trình hướng đối tượng được phát triển bởi Microsoft, được xây dựng dựa trên C++ và Java.

Khoá học lần này sẽ mang đến toàn bộ những kiến thức cơ bản về C#. Chào mừng các bạn đã đến với khoá học LẬP TRÌNH C# CƠ BẢN của Kteam.

Đánh giá

thang995 đã đánh giá 02:51 23-06-2024

Chiến Bình đã đánh giá 18:29 18-07-2023

Ok

ttrongduc2156 đã đánh giá 09:59 24-08-2022

thanhphongntp đã đánh giá 11:39 10-09-2021

Wonderful!

Nguyễn Văn Hoàng đã đánh giá 21:40 29-08-2020

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
Stevendo đã bình luận 21:16 29-11-2022

admin co thể cho thêm một số ví dụ khi áp dụng kiểu dynamic được không ?

Hung Coder đã bình luận 15:47 14-02-2022

admin cho thể cho thêm một số ví dụ khi áp dụng kiểu dynamic được không ?

mail.terio đã bình luận 09:47 23-05-2018

admin cho thể cho thêm một số ví dụ khi áp dụng kiểu dynamic được không ?

Kỳ Quang đã bình luận 13:06 31-05-2017

admin cho thể cho thêm một số ví dụ khi áp dụng kiểu dynamic được không ?

 

Không có video.