PDA

View Full Version : hỏi về string trong c#



Ngô Huy Ánh
10-08-2005, 06:40
Cho mình hỏi trong C# có hàm nào dùng để đảo ngược một chuỗi không? VD: abc --> cba.

Trong C#, phương thức Invalidate(bool), Invalidate(), Invalidate(Rectangle) dùng để làm gì?

songok
10-08-2005, 09:41
Tu nhien quen, nhung tui nghi chac co, neu khong co thi ban cu lam dai 1 ham de dao nguoc chuoi.

Phuong thuc Invalidate() dung de xoa form va goi han OnPaint() de ve lai form. Vi du ban ve cac hinh tren Form, trong su kien click cua button ban goi Invalidate() thi man hinh se bi xoa, va ham OnPaint() duoc goi de ban ve lai

Csharp_TN
10-08-2005, 11:35
Đảo ngược 1 chuỗi chắc là dùng reverse hê hê hay cái gì đó similar , k0 thì tự việt 1 cái hàm kiều ReverseString(string s ) để mà xài. Cái Invalidate()thì tui nghĩ == Refresh() thôi , chắc là chưa đúng hẳn nhưng cũng tương tự thế

Ngô Huy Ánh
11-08-2005, 00:06
Mình đã tìm mà không thấy có hàm nào có từ liên quan đến đảo chuỗi cả, còn nếu viết thì nói làm gì nữa, nếu có thì sài.
Invalidate() thì mình hiểu nhưng còn invalidate(bool)? invalidate(Rectangle) có phải là chỉ vẽ lại một vùng có kích thước Rectangle trên form không?

Thanks.

bienca101
11-08-2005, 08:12
Invalidate khác OnPaint bạn ạ. OnPaint là 1 event dành sẵn để override khi kế thừa 1 control nào đó.

Invalidate có nhiệm vụ bảo cho GDI+ engine biết là "tui cần vẽ lại cái này nhá". Còn GDI+ engine có vẽ lại hay không là chuyện của hắn. Cơ chế này cho phép GDI+ engine optimize được vùng cần vẽ ít nhất, trong khi lập trình viên thì có thể quên chuyện optimize đi.

Invalidate(Rectangle) hoặc Invalidate(Region) tương đương Invalidate(), chỉ khác ở chỗ giới hạn lại chính xác vùng cần Invalidate. Invalidate(bool) thì bạn chịu khó bật help lên xem, mình không nhớ và sáng nay cũng hơi lười.

Nếu bạn cần GDI+ engine phải vẽ ngay lại 1 vùng nào đó thì dùng Refresh(), bỏ qua các bước optimize.