gpt4 book ai didi

c# - 如何简化泛型方法的调用,我创建它是为了在项目的不同层从一种类型转换为另一种类型

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

我希望第二种调用方式应该类似于第一种调用方式。请查看我的代码中的详细信息。非常感谢任何帮助。

这是我正在使用的代码。

//第一种方法的调用方式

            var source = db.ThinkFeeds.Single(tf => tf.ID == 1);
var target = new MyProduct.UIEntities.ThinkFeed();
TypeConverter.ConvertBlToUi(source, target);

//第二种方法的调用方式。这真是一种奇怪的调用方式。

        var source = MyProduct.UIEntities.Book.GetBookByID(1);
var target = new MyProduct.DTOEntities.Book();
TypeConverter.ConvertUiToDto<MyProduct.UIEntities.Book, MyProduct.DTOEntities.Book, Book>(source, target);

//第一种方法

    public static void ConvertBlToUi<TBl, TUi>(TBl entitySource, TUi entityTarget)
{

}

//第二种方法

    public static void ConvertUiToDto<TUi, TDto, TEntity>(TUi uiEntity, TDto dtoEntity)
where TDto : DTOEntities.MyProductDTO<TEntity, TDto>
where TEntity : EntityObject
{

}

最佳答案

你不能。 Generic Methods , 类型推断:

The compiler can infer the type parameters based on the method arguments you pass in; it cannot infer the type parameters only from a constraint or return value. Therefore ...

您展示的第一种样式是使用类型推断,但这只是一种方便的简写。有时(如此处)类型推断不起作用,因此您必须显式提供类型参数。

关于c# - 如何简化泛型方法的调用,我创建它是为了在项目的不同层从一种类型转换为另一种类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14848700/

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