gpt4 book ai didi

c# - 尝试学习如何编写使用泛型类型的方法

转载 作者:行者123 更新时间:2023-11-30 16:48:48 25 4
gpt4 key购买 nike

我正在尝试自学在可能的情况下在创建方法时利用泛型类型。是否可以将这两种方法组合成一种使用泛型类型的方法?

private Decimal? NullDec(string val)
{
return String.IsNullOrEmpty(val) ? (Decimal?)null : Convert.ToDecimal(val);
}

private Int32? NullInt(string val)
{
return String.IsNullOrEmpty(val) ? (Int32?)null : Convert.ToInt32(val);
}

最佳答案

可能Convert.ChangeType() 实现类似于您的方法的东西| ,但我不确定它是否可取:

using System;

namespace Example
{
internal class Program
{
public static void Main(string[] args)
{
var @int = Foo<int>("3");
var @double = Foo<double>("3.14");
var dateTime = Foo<DateTime>("01/02/2016");
var @decimal = Foo<decimal>("3.1");

Console.WriteLine($"{@int} is a {@int.GetType()}");
Console.WriteLine($"{@double} is a {@double.GetType()}");
Console.WriteLine($"{dateTime} is a {dateTime.GetType()}");
Console.WriteLine($"{@decimal} is a {@decimal.GetType()}");

Console.ReadLine();
}

public static T? Foo<T>(string val) where T : struct, IConvertible
{
return string.IsNullOrEmpty(val) ? null : Convert.ChangeType(val, typeof(T)) as T?;
}
}
}

关于c# - 尝试学习如何编写使用泛型类型的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37686777/

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