634
Chương 16: Các giao diện và mẫu thông dụng
các định dạng khác nhau tùy vào format string. Lớp
Person
không sử dụng các thiết lập bản
địa do đối số
formatProvider
cung cấp.
using System;
public class Person : IFormattable {
// Các thành viên private dùng để lưu trữ danh hiệu
// và tên của một người.
private string title;
private string[] names;
// Phương thức khởi dựng dùng để thiết lập danh hiệu và tên.
public Person(string title, params string[] names) {
this.title = title;
this.names = names;
}
// Chép đè phương thức Object.ToString để trả về
// tên theo định dạng general.
public override string ToString() {
return ToString("G", null);
}
// Hiện thực phương thức IFormattable.ToString để trả về
// tên theo các dạng khác nhau dựa trên format string.
public string ToString(string format,
IFormatProvider formatProvider) {
string result = null;
// Sử dụng định dạng general nếu format = null.
if (format == null) format = "G";
// Nội dung của format string cho biết định dạng của tên.
switch (format.ToUpper()[0]) {