|
|
Trong bài viết này ta sẽ tìm hiểu về các đối tượng Ngày, tháng trong C#. Có thể xem Datetime là một kiểu dữ liệu trong c#, thư viện hỗ trợ các method cho việc xử lý truy xuất thời gian trên máy tính như: Lấy thời gian, ngày tháng hiện tại,ngày hôm qua, ngày mai, ngày này năm trước… Chắc hẳn bạn hình dung được những công dụng khi có thể truy xuất thời gian là như thế nào! Có thể áp dụng cho nhiều ứng dụng khác nhau có liên quan đến ngày tháng như: Ứng dụng nhật ký, lịch biểu, hẹn giờ máy tính…
1. Lấy ngày tháng năm hiện tại, ngày hôm qua, ngày mai:
Ở ví dụ bên dưới ta sẽ lấy ngày ngày giờ chính xác tại thời điểm chạy chương trình thông qua hàm Datetime.Now(); Thời gian được lấy theo thời gian của hệ thống, định dạng ngày giờ cũng theo định dạng của hệ thống. Với hàm Datetime.Today(); sẽ trả về ngày tháng hiện tại còn thời gian sẽ đưa về 0h ngày hôm đó. Để lấy được ngày, tháng, năm của ngày hôm qua ta dùng Datetime.Today().AddDays(-1); Nghĩa là lấy lùi 1 ngày so với ngày hiện tại. Nhưng ta thấy trong kết quả còn chứa 12:00:00 AM hoặc 00:00:00 là thời gian bắt đầu ngày; Giá trị này chắc hẳn không ai cần dùng tới nên ta có thể xử lý cắt chuỗi thông …..
1. Đặc điểm của từ khóa var Từ .Net 3.0 Microsoft đã bổ sung thêm từ khóa var vào thư viện các từ khóa trong Lập trình .Net. Từ khóa var hỗ trợ khởi tạo biến, mảng mà không cần khai báo kiểu dữ liệu, kiểu dữ liệu sẽ được xác định khi gán giá trị cho biến, lúc này chương trình sẽ tự ép kiểu cho biến. Và tất nhiên sau khi đã gán giá trị thì các biến, mảng đó đã có một kiểu dữ liệu xác định và không thể thay đổi.Xem ví dụ bên dưới ta thấy có 3 biến được khai báo với từ khóa var. Lần lượt 3 biến được gán giá trị với các kiểu dữ liệu là int, char, string. Sau khi gán giá trị các biến được sử dụng như các biến thông thường
2. Một số lưu ý:
Không dùng var để khai báo kiểu dữ liệu cho thuộc tính (properties) cũng như trị trả về của các phương thức (method) trong class. Phải gán giá trị cho biến dùng kiểu var ngay khởi tạo biến (gán giá trị ngay trong dòng lệnh khởi tạo biến: var a = 1; ) Đến đây có thể ta hấy rằng nếu bắt buộc phải gán giá trị như vậy thì việc không cần khai báo kiểu dữ liệu xem như vô nghĩa. Ở đây ta có gán giá trị null cho biến var ngay lúc …..
1. Hai phương pháp duyệt Arraylist
Trong ví dụ bên dưới chúng ta tìm hiểu 2 phương pháp để duyệt Arraylist. Ở phần trước chúng ta đã làm quen với cách dùng vòng lặp foreach kết hợp từ khóa var. Lần này ta sẽ làm quen với cách duyệt bằng vòng lặp for(;; ) thông thường. Như ta biết mỗi Arraylist được tạo ra đều có sẵn một thuộc tính count để tính số lượng phần tử trong danh sách, như vậy ta có có lượng phần tử để quy định số lần lặp cho vòng lặp for(;; ) Vấn đề tiếp theo là lần lượt lấy giá trị của từng phần tử trong danh sách. Ở đây ta sẽ dùng chỉ số (index) để lấy các phần tử ra. Lưu ý: Chỉ số chạy từ 0 -> count-1. Cả 2 phương pháp này đều cho ra cùng 1 kết quả giống nhau, nhưng ta thấy cách dùng foreach() kết hợp từ khóa var đơn giản hơn rất nhiều, và thấy rõ cách này cũng tiết kiệm tài nguyên hơn hẳn
2. Sắp xếp danh sách:
Trong thư viện System.collection; hỗ trợ phương thức (method) Sort(); giúp cho việc sắp xếp Arraylist một cách dễ dàng. Sắp xếp theo thứ tự tăng dần có thể áp dụng cho mọi kiểu dữ liệu khác nhau. Nếu muốn sắp theo thứ tự giảm dần có thể kết hợp với phương thức Reverse. Bài …..
1. ArrayList là gì?! Như ta thấy Arraylist là mảng động có thể thay đổi kích thước nên khi khai báo ta không xác định trước số lượng phần tử trong mảng này. Điều này đem lại một sự thuận lợi rất lớn trong việc quản lý bộ nhớ, khi nào cần dùng đến thì có thể cấp phát thêm, tránh lãng phí khi phải đưa ra một số lượng phần tử cố định cho trước để rồi không sử dụng hết tài nguyên; Cũng có trường hợp phát sinh lỗi do cấp phát không đủ.
2. Một số phương thức quan trọng của Arraylist:
Item(): thiết lập hay truy cập thành phần trong array list tại vị trí xác định. Add(): thêm một đối tượng vào array list. Clear(): xóa tất cả các thành phần của arraylist. Clone(): tạo một bản copy. Contains(): kiểm tra xem mọt thành phần nào đó có thuộc array list hay không. CopyTo(): phương thức nạp chồng dung để sao chép một array list đến một mảng một chiều. IndexOf(): TRả về chỉ mục của vị trí đầu tiên xuất hiện giá trị. Insert(): chèn một thành phần vào arraylist. Sort(): sắp xếp Arraylist. ToArray(): sao chép những thành phần của ArrayList đến một mảng mới.
3. Thêm phần tử trong Arraylist: Nhìn vào đoan code trên ta thấy khi khi khởi tạo 1 Arraylist list ta không cần xác định trước số lượng phần phần tử …..
Nếu bạn đã từng Lập trình C++ thì chắc hẳn đã từng biết tới khái niệm Template (thường được gọi là mẫu hàm) Template được dùng để tạo các hàm các class mẫu mà không cần quan tâm đến đối số là kiểu dữ liệu gì, template được đưa ra với mục đích tăng tính năng sử dụng lại của mã nguồn. Đến với C# bạn sẽ làm quen với khái niệm Generic với những tính năng tương tự Template trong C++.
1. Khái niệm Generic
Generic được đưa vào C# từ version 2.0 và common language runtime (CLR). Generic mang đến .NET framework khái niệm mới về kiểu tham số, các lớp cũng như các hàm khi định nghĩa sẽ không cần chỉ rõ tham số đưa vào thuộc kiểu dữ liệu gì, tất cả đều được xử lý dưới dạng chung nhất, từ đó người dùng có thể phát triển thành từng lớp, hàm với đối số là một kiểu dữ liệu thực nhất định. Như vậy ta thấy rằng tính kế thừa trong lập trình được áp dụng mạnh mẽ tại đây, giúp bạn tiết kiệm rất nhiều chi phí trong việc xây dựng chương trình; Ví dụ bạn xây dựng 1 hàm quick sort cho 1 mảng mà không cần quan tâm giá trị của từng phần tử trong mảng là kiểu gì, sau đó khi sử dụng bạn mới khai báo kiểu cho các phần tử đó. Như vậy …..
Trong Lập trình csharp các dữ liệu kiểu mảng – tập hợp được hỗ trợ rất mạnh mẽ với đa dạng các các kiểu dữ liệu khác nhau. Mỗi kiểu dữ liệu được hỗ trợ gần như đầy đủ hết các phương thức, thuộc tính thao tác trên kiểu dữ liệu đó. Ngoài ra còn không nhắc tới các phương thức, thuộc tính dùng cho các kiểu dữ liệu mảng – tập hợp. Đó là những yếu tố cơ bản không thể thiếu, hỗ trợ tốt hơn cho quá trình làm việc với dữ liệu mang tính danh sách xâu chuỗi.
Trong khuôn khổ bài viết này ta sẽ tìm hiểu về phương thức Reverse – phương thức nãy hỗ trợ cho việc đảo ngược một danh sách theo thứ ngược lại, có thể áp dụng cho các kiểu dữ liệu mảng – danh sách – tập hợp. Nếu dùng reverse cho danh sách sau khi đã sắp xếp tăng dần ta sẽ có được danh sách sắp theo chiều giảm dần.
Ở ví dụ bên dưới, chúng ta ta một mảng các phần tử kiểu string và lần lượt gán giá trị cho các phần tử trong mảng. Ở đây chúng ta tạo mảng theo cách tổng quát nhất, khai báo kiểu dữ liệu và số lượng phần tử cho mảng. Thiết nghĩ làm như vậy trong ví dụ này chỉ để chúng ta hiểu hơn về ý nghĩa của việc khai báo …..
|
|