gpt4 book ai didi

c# - 在 C# 中,我可以编写一个通用函数来返回 null 或将值作为字符串返回吗?

转载 作者:太空狗 更新时间:2023-10-29 22:33:20 25 4
gpt4 key购买 nike

基本上我想要以下通用函数:

public string StringOrNull<T> (T value)
{
if (value != null)
{
return value.ToString();
}
return null;
}

我知道我可以使用约束,例如 where T: class,但 T 可以是基本类型、Nullable<> 或类。有没有通用的方法来做到这一点?

编辑

事实证明我抢了枪。正如这个示例所示,这实际上工作得很好:

    class Program
{
static void Main(string[] args)
{
int i = 7;
Nullable<int> n_i = 7;
Nullable<int> n_i_asNull = null;
String foo = "foo";
String bar = null;


Console.WriteLine(StringOrNull(i));
Console.WriteLine(StringOrNull(n_i));
Console.WriteLine(StringOrNull(n_i_asNull));
Console.WriteLine(StringOrNull(foo));
Console.WriteLine(StringOrNull(bar));


}

static private string StringOrNull<T>(T value)
{
if (value != null)
{
return value.ToString();
}
return null;
}
}

最佳答案

default Keyword in Generic Code

在泛型类和方法中,出现的一个问题是当您事先不知道以下内容时如何为参数化类型 T 分配默认值:

T 是引用类型还是值类型。

如果 T 是值类型,它是数值还是结构。

关于c# - 在 C# 中,我可以编写一个通用函数来返回 null 或将值作为字符串返回吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12861311/

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