Tôi có một đối tượng với phương thức tùy chỉnh WriteLine(string)
. Một cái gì đó như thế này:Làm thế nào để bắt chước string.Format() theo phương pháp của riêng tôi?
public void WriteLine(string text)
{
this.StringList.Add(text);
}
Cách dễ nhất để sao chép chức năng của string.Format()
bằng phương pháp này là gì? Ví dụ: Những gì tôi hiện thường thấy mình làm điều này là:
myObj.WriteLine(string.Format("Hello, {0}", name));
Nếu bạn tạo một ứng dụng Console mới phiên bản của họ về một phương pháp WriteLine()
thực hiện chính xác những gì tôi muốn làm:
Console.WriteLine("Hello, {0}", name);
Họ loại bỏ sự cần thiết phải gọi string.Format()
. Có dễ dàng để làm cho phương pháp của bạn chấp nhận điều này bằng cách nào đó? Hoặc tôi sẽ phải tạo ra một ngàn phương pháp quá tải? Một cái gì đó như thế này:
public void WriteLine() { ... }
public void WriteLine(string text) { ... }
public void WriteLine(string text, object arg0) { ... }
public void WriteLine(string text, object arg0, object arg1) { ... }
public void WriteLine(string text, object arg0, object arg1, object arg2)
{
this.StringList.Add(string.Format(text, arg0, arg1, arg2));
}
// etc etc etc
Đó có phải là cách hợp lý duy nhất để thực hiện việc này không? Mọi đề xuất đều được hoan nghênh :)
Tại sao không chỉ ủy quyền cho 'string.Format'? Bạn có thực sự muốn viết một tokenizer? – Oded
Có một tính năng của C# mà bạn không biết về điều bạn cần biết. http://msdn.microsoft.com/en-us/library/w5zay9db(v=VS.100).aspx –
@Đó là câu hỏi của tôi ... Tôi không biết từ khóa 'params' và không biết rằng tôi thậm chí *** có thể *** ủy quyền cho 'string.Format'. – Chev