C# 什么';这是一种传递回类实例组的干净方法,无需创建额外的';交易';上课?
为了说明这一点,API中的每个方法都必须返回结果类的实例以及传回的任何其他对象 如果我有两个类,我想作为单个项目和列表传回:C# 什么';这是一种传递回类实例组的干净方法,无需创建额外的';交易';上课?,c#,C#,为了说明这一点,API中的每个方法都必须返回结果类的实例以及传回的任何其他对象 如果我有两个类,我想作为单个项目和列表传回: public class Foo { } public class Bar { } 这意味着我需要四个事务类才能传回: public class Result { } public class ApiFoo { public Result Result; public Foo Foo; } public class ApiFooList {
public class Foo
{
}
public class Bar
{
}
这意味着我需要四个事务类才能传回:
public class Result
{
}
public class ApiFoo
{
public Result Result;
public Foo Foo;
}
public class ApiFooList
{
public Result Result;
public List<Foo> FooList;
}
public class ApiBar
{
public Result Result;
public Bar Bar;
}
public class ApiBarList
{
public Result Result;
public List<Bar> BarList;
}
公共类结果
{
}
公共类ApiFoo
{
公共结果;
公共福福;
}
公营养蜂人
{
公共结果;
公开名单愚人;
}
公共级ApiBar
{
公共结果;
公共酒吧;
}
公共类ApiBarList
{
公共结果;
公开名单;
}
我相信一定有比这更好的方法传回正确的收藏
有谁能建议一个更好的方法吗
谢谢。当我读到这个问题时,我会承认,我不是很自信,泛型可能会有所帮助。您可以创建一个可以封装所有类型的类,如:
class ResultWrapper<T>
{
public Result Result;
public T Value;
}
泛型本身也是在C#中开发时的一个重要主题,它被广泛使用。更多信息,请参阅。在阅读时考虑这个问题,我承认这不是很自信,泛型可能会有所帮助。您可以创建一个可以封装所有类型的类,如:
class ResultWrapper<T>
{
public Result Result;
public T Value;
}
泛型本身也是在C#中开发时的一个重要主题,它被广泛使用。有关更多信息,请参阅。您应该为此使用
通用功能。您可以执行以下操作:
public class SR<T>
{
public T Result { get; set; }
public T GetResult()
{
return Result;
}
}
var result = new SR<Bar>(); or var result = new SR<List<Bar>>();
公共类SR
{
公共T结果{get;set;}
公共T GetResult()
{
返回结果;
}
}
var结果=新SR();或var结果=新SR();
您应该为此使用通用
功能。您可以执行以下操作:
public class SR<T>
{
public T Result { get; set; }
public T GetResult()
{
return Result;
}
}
var result = new SR<Bar>(); or var result = new SR<List<Bar>>();
公共类SR
{
公共T结果{get;set;}
公共T GetResult()
{
返回结果;
}
}
var结果=新SR();或var结果=新SR();
你说的“事务类”是什么意思?您的目标是哪个框架/库?问题中没有说明如何重新安排代码以使其更好。问题(IMO)不清楚。你说的“事务类”是什么意思?您的目标是哪个框架/库?问题中没有说明如何重新安排代码以使其更好。问题(国际海事组织)不清楚。谢谢。是的,你的解释是正确的。intellisense是否会明确地指示正在传递的内容?@user2078938 intellisense对此有很大的支持,但我觉得这有点XY问题。我不知道这个解决方案试图解决的根本问题是什么,但这个解决方案感觉有点笨拙。谢谢。是的,你的解释是正确的。intellisense会给出一个清晰的指示,说明返回的是什么吗?@user2078938 intellisense非常支持它,但我觉得这有点像XY问题。我不知道这个解决方案试图解决的根本问题是什么,但这个解决方案感觉有点笨拙。
class Result<T>
{
// Existing Result members.
public T Value;
}
public class SR<T>
{
public T Result { get; set; }
public T GetResult()
{
return Result;
}
}
var result = new SR<Bar>(); or var result = new SR<List<Bar>>();