• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Có gì khác nhau giữa 1 số lệnh??

Nơi trao đổi về các vấn đề trong lập trình Windows Forms, Console dùng cú pháp ngôn ngữ Visual Basic .NET và C#

Điều hành viên: tungblt, vuathongtin

thuyan1990
Thành viên trung thành
Thành viên trung thành
Bài viết: 299
Ngày tham gia: T.Bảy 02/01/2010 10:23 am
Has thanked: 20 time
Been thanked: 2 time

Có gì khác nhau giữa 1 số lệnh??

Gửi bàigửi bởi thuyan1990 » T.Hai 11/01/2010 7:13 pm

Các anh chỉ cho em hỏi chúng khác nhau thế nào
+ Application.Exit() => sẽ thoát chương trình ở bất cứ chỗ nào gọi lệnh

+ Close() => sẽ thoát chương trình nếu:
1. Đóng form đầu tiên với thiết lập: Chương trình thoát khi form startup bị đóng
2. Khi form cuối cùng bị đóng với thiết lập: khi form cuối cùng đóng.

+ Me.Dispose(), Me.Close()
Đối với các form được gọi hiện lên bằng ShowDialog() thay vì Show() thì dùng xong phải Dispose (ở cùng nơi gọi ShowDialog() chứ không phải trong mã của form đó, trong mã lệnh của form đó thì vẫn Close() thôi). Lý do là vì form hiện lên dạng này khi đóng lại bằng Close() thực chất không đóng mà chỉ ẩn đi, để người ta lấy thông tin từ nó. Do vậy, khi lấy các thông tin cần thiết rồi, thì phải cho Dispose() để hủy nó đi.

+ End => Nó sẽ làm chương trình đóng cái rụp, mà không đi qua các sự kiện đóng (FormClosed, FormClosing), nếu có cần lưu lại thông tin nào đó trước khi tắt chương trình mà dùng End thì coi như không lưu được gì hết.

+ trim(chuoi), chuoi.trim() => Về chức năng chung cắt bỏ khoảng trắng thì 2 hàm Trim là giống nhau, tuy nhiên hàm chuoi.Trim() có thêm 1 hàm overload cho bạn lựa chọn cắt bỏ ký tự khác khoảng trắng nữa.

.... (sẽ tiếp tục cập nhật) :D
Thanks!!!
Sửa lần cuối bởi thuyan1990 vào ngày T.Tư 13/01/2010 9:12 pm với 1 lần sửa.



Tiepmv.cntt

Re: Có gì khác nhau không??

Gửi bàigửi bởi Tiepmv.cntt » T.Hai 11/01/2010 8:05 pm

Hí! Hỏi gì mà kỳ quặc vậy. Xem tiếng Anh và dịch sang tiếng Việt đã thấy khác rồi. Hì!

thuyan1990
Thành viên trung thành
Thành viên trung thành
Bài viết: 299
Ngày tham gia: T.Bảy 02/01/2010 10:23 am
Has thanked: 20 time
Been thanked: 2 time

Re: Có gì khác nhau không??

Gửi bàigửi bởi thuyan1990 » T.Hai 11/01/2010 8:40 pm

Mã: Chọn hết

Xem tiếng Anh và dịch sang tiếng Việt đã thấy khác rồi. Hì!


Câu này thật sự kỳ quặc thật ko hiểu j cả :D

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4761
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 515 time

Re: Có gì khác nhau không??

Gửi bàigửi bởi truongphu » T.Hai 11/01/2010 8:57 pm

hàm Exit là hàm đóng cưỡng bức, mọi thứ stop ngay dù đang làm
hàm close là hàm đóng nhẹ nhàng, có thể thi hành các sự kiện trước khi đóng

------
Trim(String) là hàm từ VB6, loại space 2 đầu
String.Trim() mạnh hơn, loại bỏ space 2 đầu, kể cả newline
Sửa lần cuối bởi truongphu vào ngày T.Hai 11/01/2010 9:32 pm với 1 lần sửa.
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

neverland87
Guru
Guru
Bài viết: 490
Ngày tham gia: T.Bảy 26/05/2007 4:31 pm
Been thanked: 8 time

Re: Có gì khác nhau không??

Gửi bàigửi bởi neverland87 » T.Hai 11/01/2010 9:31 pm

thuyan1990 đã viết:Các anh chỉ cho em hỏi chúng khác nhau thế nào
Application.Exit() <=> Close()
trim(chuoi) <=> chuoi.trim()
.... (sẽ tiếp tục cập nhật) :D
Thanks!!!

Close() --> chỉ đóng form đang mở, chưa chắc đóng chương trình nếu form bị tắt không phải form StartUp
Application.Exit() ---> đóng hẳn chương trình, dù form bị tắt bằng hàm này là form thường hay form StartUp.
----
Về hàm Trim như bạn ghi thì tương đương nhau, mà chắc VB.NET thôi, chứ C# hổng có hàm Trim()
SIMPLY THE BEST - ĐƠN GIẢN LÀ TỐT NHẤT

Hình đại diện của người dùng
thuocthoigian
Thành viên danh dự
Thành viên danh dự
Bài viết: 167
Ngày tham gia: T.Hai 31/07/2006 2:07 pm
Đến từ: Minh Lộ - Thanh Hóa
Liên hệ:

Re: Có gì khác nhau không??

Gửi bàigửi bởi thuocthoigian » T.Hai 11/01/2010 9:37 pm

trim(chuoi) <=> chuoi.trim()

gõ 1 dấu chấm thay phải gõ 2 dấu () --> rất tiện khi code :D
Sự tưởng tượng còn quan trọng hơn kiến thức! (A.Einstein)

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4761
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 515 time

Re: Có gì khác nhau không??

Gửi bàigửi bởi truongphu » T.Hai 11/01/2010 9:48 pm

Nói thêm cho rõ:
nếu có sự kiện trong Form.Closed và Form.Closing

* Dùng Form.Close thì êm, các sự liện được thi hành
* Dùng application.exit thì đóng ngay lập tức, bỏ qua các sự kiện trên

Riêng String.Trim() loại bỏ cả vbnewline tôi chưa thử, chỉ biết thế
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

Hình đại diện của người dùng
hoangthu1974
Guru
Guru
Bài viết: 813
Ngày tham gia: T.Năm 09/03/2006 9:30 am
Đến từ: Hà Nội --> Tp. Hồ Chí Minh
Been thanked: 13 time
Liên hệ:

Re: Có gì khác nhau không??

Gửi bàigửi bởi hoangthu1974 » T.Hai 11/01/2010 9:50 pm

thuyan1990 đã viết:Các anh chỉ cho em hỏi chúng khác nhau thế nào
Application.Exit() <=> Close()
trim(chuoi) <=> chuoi.trim()
.... (sẽ tiếp tục cập nhật) :D
Thanks!!!

Application.Exit() sẽ thoát chương trình ở bất cứ chỗ nào gọi lệnh. Còn Close() sẽ thoát chương trình nếu:
1. Đóng form đầu tiên với thiết lập: Chương trình thoát khi form startup bị đóng
2. Khi form cuối cùng bị đóng với thiết lập: khi form cuối cùng đóng.

Trim(chuoi) và chuoi.Trim() giống nhau.

thuyan1990
Thành viên trung thành
Thành viên trung thành
Bài viết: 299
Ngày tham gia: T.Bảy 02/01/2010 10:23 am
Has thanked: 20 time
Been thanked: 2 time

Re: Có gì khác nhau không??

Gửi bàigửi bởi thuyan1990 » T.Hai 11/01/2010 10:20 pm

Dạ em xin cảm ơn các anh chị nhiều vì nhờ các anh chị mà em hiểu thêm chút nữa. Và cũng mong các anh chị giúp đỡ cho em thêm sau này!

Hình đại diện của người dùng
NoBi
Quản trị
Quản trị
Bài viết: 954
Ngày tham gia: T.Ba 18/03/2008 1:22 pm
Đến từ: Sài Gòn
Has thanked: 51 time
Been thanked: 66 time
Liên hệ:

Re: Có gì khác nhau không??

Gửi bàigửi bởi NoBi » T.Hai 11/01/2010 10:36 pm

Về chức năng chung cắt bỏ khoảng trắng thì 2 hàm Trim là giống nhau, tuy nhiên hàm chuoi.Trim() có thêm 1 hàm overload cho bạn lựa chọn cắt bỏ ký tự khác khoảng trắng nữa. Tôi hay dùng hàm overload này để loại bỏ ký tự thừa ở cuối chuỗi sau khi ra khỏi vòng lặp ghép chuỗi:
  1. Dim s As String = ""
  2.         For i As Byte = 0 To 10
  3.             s &= i & ","
  4.         Next
  5.         ' s = 0,1,2,3,4,5,6,7,8,9,10,
  6.  
  7.         s = s.Trim(",".ToCharArray)
  8.         ' s = 0,1,2,3,4,5,6,7,8,9,10

Khuyến cáo nên dùng chuoi.Trim() để làm quen với lập trình hướng đối tượng, khi xem code C# hay ngôn ngữ hướng đối tượng khác cũng không thấy lạ.
:>

thuyan1990
Thành viên trung thành
Thành viên trung thành
Bài viết: 299
Ngày tham gia: T.Bảy 02/01/2010 10:23 am
Has thanked: 20 time
Been thanked: 2 time

Re: Có gì khác nhau không??

Gửi bàigửi bởi thuyan1990 » T.Tư 13/01/2010 11:11 am

Vậy còn Me.Dispose() <=> Me.Close() (dùng cho form hiện tại)
và hàm End() có gì khác so với Application.Exit(), Close()

Mong các anh chị chỉ giáo tiếp

neverland87
Guru
Guru
Bài viết: 490
Ngày tham gia: T.Bảy 26/05/2007 4:31 pm
Been thanked: 8 time

Re: Có gì khác nhau không??

Gửi bàigửi bởi neverland87 » T.Tư 13/01/2010 12:15 pm

thuyan1990 đã viết:Vậy còn Me.Dispose() <=> Me.Close() (dùng cho form hiện tại)
và hàm End() có gì khác so với Application.Exit(), Close()

Dispose là hàm hủy 1 đối tượng trong bộ nhớ máy vi tính, form thực chất cũng là 1 đối tượng.
Theo mình, có lẽ dùng Dispose sẽ lợi hơn so với dùng Close, vì không biết khi Close form, bộ nhớ mà form chiếm cứ có được dọn dẹp đi không.

Hàm End: Không biết :D , bên C# không có.
SIMPLY THE BEST - ĐƠN GIẢN LÀ TỐT NHẤT

Hình đại diện của người dùng
tungcan5diop
Cựu chiến binh
Cựu chiến binh
Bài viết: 1123
Ngày tham gia: T.Tư 24/09/2008 4:04 pm
Đến từ: TPHCM
Has thanked: 1 time
Been thanked: 28 time

Re: Có gì khác nhau không??

Gửi bàigửi bởi tungcan5diop » T.Tư 13/01/2010 1:08 pm

hàm End(kết thúc) mạnh lắm,thoát luôn cái Form hiện tại đang mở.
theo mình phải Close() trước rồi hãy mới Dispose,phải đóng nó rồi hãy hủy nó,hủy ngang như vậy,dễ sinh ra rác lắm
Hỡi thế gian bug(lỗi) là gì?
Mà sửa...hoài không hết!

Hình đại diện của người dùng
alexanderdna
Guru
Guru
Bài viết: 214
Ngày tham gia: T.Ba 14/07/2009 11:13 am
Đến từ: Sài Gòn
Has thanked: 3 time
Been thanked: 15 time

Re: Có gì khác nhau không??

Gửi bàigửi bởi alexanderdna » T.Tư 13/01/2010 1:10 pm

Theo MSDN:
Đối với các form được gọi hiện lên bằng ShowDialog() thay vì Show() thì dùng xong phải Dispose (ở cùng nơi gọi ShowDialog() chứ không phải trong mã của form đó, trong mã lệnh của form đó thì vẫn Close() thôi). Lý do là vì form hiện lên dạng này khi đóng lại bằng Close() thực chất không đóng mà chỉ ẩn đi, để người ta lấy thông tin từ nó. Do vậy, khi lấy các thông tin cần thiết rồi, thì phải cho Dispose() để hủy nó đi.

Thí dụ:
  1. ' Hiện form
  2. frmYeuCau.ShowDialog() 'Form này chưa đóng thì chương trình chưa qua dòng kế tiếp
  3. ' Lấy thông tin
  4. Me.txtHoTen.Text = frmYeuCau.txtHoTen.Text
  5. ' Hủy form
  6. frmYeuCau.Dispose()


End là ở bên VB. Nó sẽ làm chương trình đóng cái rụp, mà không đi qua các sự kiện đóng (FormClosed, FormClosing), nếu có cần lưu lại thông tin nào đó trước khi tắt chương trình mà dùng End thì coi như không lưu được gì hết.

thuyan1990
Thành viên trung thành
Thành viên trung thành
Bài viết: 299
Ngày tham gia: T.Bảy 02/01/2010 10:23 am
Has thanked: 20 time
Been thanked: 2 time

Re: Có gì khác nhau không??

Gửi bàigửi bởi thuyan1990 » T.Ba 19/01/2010 2:54 pm

vbCrLf , vbNewLine, chr(13) & chr(10)
Phần biệt giữa chúng thế nào vậy các anh chị?

Hình đại diện của người dùng
tungcan5diop
Cựu chiến binh
Cựu chiến binh
Bài viết: 1123
Ngày tham gia: T.Tư 24/09/2008 4:04 pm
Đến từ: TPHCM
Has thanked: 1 time
Been thanked: 28 time

Re: Có gì khác nhau không??

Gửi bàigửi bởi tungcan5diop » T.Ba 19/01/2010 3:04 pm

sao bạn ko thử tự test nhỉ,câu trả lời sẽ chính xác hơn
vd:
  1. dim str as String=""
  2. str="thuyan1990 " &  ControlChars.NewLine
  3.  

sau dấu chấm là hàng loạt cái mà bạn cần biết đó :D
Hỡi thế gian bug(lỗi) là gì?
Mà sửa...hoài không hết!

thuyan1990
Thành viên trung thành
Thành viên trung thành
Bài viết: 299
Ngày tham gia: T.Bảy 02/01/2010 10:23 am
Has thanked: 20 time
Been thanked: 2 time

Re: Có gì khác nhau không??

Gửi bàigửi bởi thuyan1990 » T.Ba 19/01/2010 5:02 pm

Đã test rồi nên mới biết 3 cái đó cùng 1 nhiệm vụ là xuống dòng . Nhưng ko biết nó có khì khác nữa :(

neverland87
Guru
Guru
Bài viết: 490
Ngày tham gia: T.Bảy 26/05/2007 4:31 pm
Been thanked: 8 time

Re: Có gì khác nhau không??

Gửi bàigửi bởi neverland87 » T.Ba 19/01/2010 6:15 pm

thuyan1990 đã viết:Đã test rồi nên mới biết 3 cái đó cùng 1 nhiệm vụ là xuống dòng . Nhưng ko biết nó có khì khác nữa :(

Nếu vậy thì không khác nhau, chỉ là 1 món ăn với 3 cách nấu, nhưng cách nấu nào cũng cho kết quả vào miệng >:)

vbCrLf , vbNewLine : đều là xuống dòng
vbCrLf, chr(13) & chr(10): động tác xuống dòng thực chất gồm 2 thao tác nhỏ: xuống 1 dòng dưới con nháy (mã 13 hoặc Cr) và trả về đầu dòng (mã 10 hoặc Lf).
SIMPLY THE BEST - ĐƠN GIẢN LÀ TỐT NHẤT

thuyan1990
Thành viên trung thành
Thành viên trung thành
Bài viết: 299
Ngày tham gia: T.Bảy 02/01/2010 10:23 am
Has thanked: 20 time
Been thanked: 2 time

Re: Có gì khác nhau không??

Gửi bàigửi bởi thuyan1990 » T.Tư 20/01/2010 11:36 am

vbCrLf , vbNewLine : đều là xuống dòng
vbCrLf, chr(13) & chr(10): động tác xuống dòng thực chất gồm 2 thao tác nhỏ: xuống 1 dòng dưới con nháy (mã 13 hoặc Cr) và trả về đầu dòng (mã 10 hoặc Lf).


Vậy thì ko biết VB.NET nghĩ sao mà lại đưa ra nhiều hàm mà có cùng 1 mục đích nên mình nghĩ nó có cái gì đó trong đó mà mình chưa biết .
Chẳng hạn như hàm chuoi.trim() và trim(chuoi) như anh NoBi nêu lên sự khác nhau của nó :D

Hình đại diện của người dùng
anhtuyenbk
Guru
Guru
Bài viết: 1311
Ngày tham gia: T.Năm 22/09/2005 4:12 pm
Đến từ: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 38 time

Re: Có gì khác nhau không??

Gửi bàigửi bởi anhtuyenbk » T.Tư 20/01/2010 11:43 am

Hàm chính của VB.Net chỉ là chuoi.trim().
còn cái trim(chuoi) được làm thêm chẳng qua là để cho các bạn trước kia vốn xài VB6 cảm thấy quen thuộc mà thôi.
Kiếm cơm cho qua ngày tháng
https://www.facebook.com/pinduphongpisenchinhhang


Quay về “Visual Basic .NET và C# (VB.NET & C#)”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.8 khách