我有一个List<object>
.我想循环遍历列表并以更友好的方式打印出值,而不仅仅是o.ToString()
在某些对象是布尔值或日期时间等情况下.
你将如何构造一个我可以调用的函数MyToString(o)
并返回一个正确格式化的字符串(由我指定)作为其实际类型?
您可以在.NET 4.0中使用dynamic关键字,因为您正在处理内置类型.否则,你将使用多态.
例:
using System;
using System.Collections.Generic;
class Test
{
static void Main()
{
List<object> stuff = new List<object> { DateTime.Now, true, 666 };
foreach (object o in stuff)
{
dynamic d = o;
Print(d);
}
}
private static void Print(DateTime d)
{
Console.WriteLine("I'm a date"); //replace with your actual implementation
}
private static void Print(bool b)
{
Console.WriteLine("I'm a bool");
}
private static void Print(int i)
{
Console.WriteLine("I'm an int");
}
}
Run Code Online (Sandbox Code Playgroud)
打印出来:
I'm a date
I'm a bool
I'm an int
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2541 次 |
最近记录: |