tailieunhanh - Các giao diện và mẫu phần 4

Bạn cần hiện thực một kiểu có thể được sử dụng theo các format string, và có thể tạo ra những biểu diễn chuỗi khác nhau cho nội dung của nó dựa vào format specifier. | o Hiện thực kiểu khả-định-dạng formattable type Bạn cần hiện thực một kiểu có thể được sử dụng theo các format string và có thể tạo ra những biểu diễn chuỗi khác nhau cho nội dung của nó dựa vào format specifier. Hiện thực giao diện . Đoạn mã dưới đây minh họa cách sử dụng format specifier phần in đậm trong phương thức WriteLine của lớp . double a uint b 12000 byte c 254 a 0 b 1 and c 2 a b c a 0 c0 b 1 n4 and c 2 10 x5 a b c Khi chạy trên máy với thiết lập bản địa là English . đoạn mã này sẽ cho kết xuất như sau thay đổi nội dung của format specifier sẽ thay đổi định dạng của kết xuất một cách đáng kể mặc dù dữ liệu vẫn không thay đổi a b 12000 and c 254 a 345 679 b 12 and c 000fe Để kích hoạt việc hỗ trợ format specifier bạn phải hiện thực giao diện IFormattable. Giao diện này khai báo một phương thức có tên là ToString với chữ ký như sau string ToString string format IFormatProvider formatProvider Đối số format là một chứa format string chuỗi định dạng . Format string là phần format specifier phía sau dấu hai chấm. Ví dụ trong format specifier 2 10 x5 ở ví dụ trên x5 là format string. Format string chứa những chỉ thị mà thể hiện IFormattable sẽ sử dụng khi tạo ra dạng chuỗi cho nội dung của nó. Tài liệu .NET Framework phát biểu rằng những kiểu có hiện thực IFormattable thì phải hỗ trợ format string G general nhưng những format string được hỗ trợ khác thì phụ thuộc vào hiện thực. Đối số format là null nếu format specifier không chứa phần format string ví dụ 0 hay 1 20 . Đối số formatProvider là tham chiếu đến một thể hiện dùng để truy xuất các thông tin bản địa bao gồm các dữ liệu như biểu tượng tiền tệ hay số lượng chữ số thập phân . Theo mặc định formatProvider là null nghĩa là bạn sẽ sử dụng các thiết lập bản địa của tiểu trình hiện hành có thể lấy được thông qua phương thức tĩnh CurrentCulture của lớp .