[VB.NET]Có thể bạn chưa biết?

Các mẹo vặt linh tinh không thuộc các nhóm trên

Các điều hành viên: tungcan5diop, QUANITGROBEST

Đăng trả lời
Hình đại diện của thành viên
vo_minhdat2007
Quản trị
Quản trị
Bài viết: 2227
Ngày tham gia: Chủ nhật 17/07/2005 1:40 am
Has thanked: 13 times
Been thanked: 87 times
Tiếp xúc:

[VB.NET]Có thể bạn chưa biết?

Gửi bài by vo_minhdat2007 »

Mục này em đưa ra để nói lên những tính năng tuy nhỏ nhưng tiện/hay của VB.NET. Ai có kinh nghiệm thì mời vào chia sẻ! Ai biết rồi thì cũng... đọc cho vui :D. Em xin mở hàng :
Khai báo biến chạy ngay trong vòng lặp :
Thay vì phải nghĩ trước sẽ có bao nhiêu vòng lặp, hoặc gặp lại khai báo, ta làm thế này luôn :

Mã: Chọn tất cả

For i As Integer = Dau To Cuoi    'CodeNext
Lưu ý : Biến khai báo chỉ dùng trong vòng lặp, kết thúc vòng lặp sẽ mất!
Gộp nhiều dòng code tương tự :
Nói tương tự chứ bạn muốn gộp thế nào cũng được.
Đoạn code đầu :

Mã: Chọn tất cả

M(0) = M1M(1) = M2M(2) = M3
Rõ ràng nếu code bạn chỉ vài dòng thì không nói gì, chứ ~2800 dòng như trong project mình đang làm, thì nó thật sự khủng khiếp (mặc dù đã dùng tối đa Module [-O< ). Nhưng bạn có thể gộp lại, dễ debug/quản lý :

Mã: Chọn tất cả

M(0) = M1 : M(1) = M2 : M(2) = M3
Dùng Outline của VB.NET :
Như đã nói, code hơn 2800 dòng, vậy bạn quản lí kiểu gì? Có 1 cách là dùng Bookmark, nhưng tưởng tượng, Bookmark từng cái, rồi nhầm với Bookmark mấy cái chưa xử, thì chịu sao nổi.
Và giải pháp là dùng Outlining của VB.NET. Bạn sẽ thấy dấu - ở trước mổi Sub, Function, Class, ... . Nhưng không lẽ nhấn từng cái? Thời đại Auto khác nha :D. Chỉ 1 bước, bạn sẽ thu gọn được tất cả.
Hình ảnh
Vẫn chưa hài lòng? Vâng, dùng cách trên, các bước thu gọn nhưng vẫn dài, và không phân loại nên nằm lung tung. Dùng ngay cấu trúc Region :
Hình ảnh

Tạm ngưng :D
Hình đại diện của thành viên
vo_minhdat2007
Quản trị
Quản trị
Bài viết: 2227
Ngày tham gia: Chủ nhật 17/07/2005 1:40 am
Has thanked: 13 times
Been thanked: 87 times
Tiếp xúc:

Re: [VB.NET]Có thể bạn chưa biết?

Gửi bài by vo_minhdat2007 »

Chức năng Code Snipet :
Có bao giờ bạn làm một số code giống hệt nhau? Nhưng Code Snipet không chỉ có vậy. Bạn nhấn Ctrl + K, sau đó nhấn tiếp Ctrl + X. Bạn sẽ thấy Code Snipet hiện ra và chọn cái cần hiện. Sẽ có nhiều thứ mà bạn chưa biết đấy ;)
Hình ảnh
Ngoài ra, để thêm/xoá thì bạn có thể nhấn Ctrl + K, rồi Ctrl + B để vào trình quản lí.
Hình đại diện của thành viên
vo_minhdat2007
Quản trị
Quản trị
Bài viết: 2227
Ngày tham gia: Chủ nhật 17/07/2005 1:40 am
Has thanked: 13 times
Been thanked: 87 times
Tiếp xúc:

Re: [VB.NET]Có thể bạn chưa biết?

Gửi bài by vo_minhdat2007 »

AndAlso và OrElse :
Như ta biết 1 nguyên tắc bất di bất dịch là hễ :
- 1 trong các điều kiện của And là False => False hết
- 1 trong các điều kiện của And là True => True hết
Tuy nhiên thực tế nếu bạn dùng Or hoặc And thì chương trình xét toàn bộ tất cả các điều kiện, bên cạnh việc tốn thời gian còn có thể gây lỗi (rất tiếc là số / 0 trong VB.NET không gây lỗi nên không lấy ví dụ đơn giản này cho các bạn).
Giải pháp là AndAlso và OrElse thay vì And và Or. 2 từ khoá ấy làm việc như mình mô tả ở trên. Ví dụ :

Mã: Chọn tất cả

Dim Students() As Student    If Students Is Nothing OrElse Students.Length = 0 Then        Msgbox ("Không hợp lệ")    End If
Rõ ràng ở code trên nếu không dùng OrElse thì sẽ hiện lỗi do Students chưa chắc khác Nothing mà tìm Length thì trả về Null Reference liền! AndAlso cũng tương tự vậy.
Đăng trả lời

Quay về