gpt4 book ai didi

c# - 一般编写扩展的正确方法是什么?

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

我见过用几种不同的方式为泛型编写类扩展的例子。我要使用 AutoMapper举个例子。

1)

public static class Extensions<Src, Tgt>
{
public static Tgt TransferData(this Src source)
{
AutoMapper.Mapper.CreateMap<Src, Tgt>();
return AutoMapper.Mapper.Map<Src, Tgt>(source);
}
}

2)

public static class Extensions2
{
public static Tgt TransferData<Src, Tgt>(this Src source)
{
AutoMapper.Mapper.CreateMap<Src, Tgt>();
return AutoMapper.Mapper.Map<Src, Tgt>(source);
}
}

哪个更好?为什么?第一个是否正确?

最佳答案

不,第一个不正确。扩展方法必须在顶级静态非通用类中定义。

此外,我建议也遵守类型参数的命名约定:

public static class Extensions2
{
public static TTarget TransferData<TSource, TTarget>(this TSource source)
{
AutoMapper.Mapper.CreateMap<TSource, TTarget>();
return AutoMapper.Mapper.Map<TSource, TTarget>(source);
}
}

关于c# - 一般编写扩展的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6796479/

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