gpt4 book ai didi

C# 在运行时打开对象类型

转载 作者:太空狗 更新时间:2023-10-30 00:27:17 25 4
gpt4 key购买 nike

我有一个 List<object> .我想遍历列表并以比 o.ToString() 更友好的方式打印出值如果某些对象是 bool 值或日期时间等。

你会如何构建一个我可以调用的函数,比如 MyToString(o)并针对其实际类型返回格式正确(由我指定)的字符串?

最佳答案

您可以使用 dynamic keyword对于 .NET 4.0,因为您正在处理内置类型。否则,您将为此使用多态性。

例子:

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");
}
}

打印出来:

I'm a date
I'm a bool
I'm an int

关于C# 在运行时打开对象类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7149788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com