如何在一条线上做到这一点?

时间:2012-05-17 17:18:48

标签: c#

我正在考虑整理一下,但我对C#

有些新意
ResponseList responsesList = new ResponseList();
PagedResponseList pagedResponsesList = new PagedResponseList();
responsesList = responseService.ListSurveyResponses(1000);
pagedResponsesList = responsesList.ResultData;

这可能是一个简单的方法,但是这个单行所需的语法让我感到厌烦。

4 个答案:

答案 0 :(得分:7)

首先,您实际上并不需要前两行中的两个new语句,因为那些new实例将被您在最后两行中分配的任何内容覆盖。

如果您是C#的新手,我建议至少坚持使用两行,这样您至少可以理解步骤中发生的事情。特别是最后两行:

ResponseList responsesList = responseService.ListSurveyResponses(1000);
PagedResponseList pagedResponsesList = responsesList.ResultData;

如果您稍后在代码中使用responsesList,您可以将这两行压缩到以下行中(您认为它很容易理解) ,只需链接.ResultData后面的responseService.ListSurveyResponses()属性:

PagedResponseList pagedResponsesList = responseService.ListSurveyResponses(1000).ResultData;

答案 1 :(得分:5)

var pagedResponsesList = responseService.ListSurveyResponses(1000).ResultData;

答案 2 :(得分:1)

正如其他人所建议的那样,你可以将它们全部放在一行中,如下所示:

var pagedResponsesList = responseService.ListSurveyResponses(1000).ResultData;

但我认为,鉴于您正在调用另一项服务,您真的想要进行一些异常处理,在引用.ResultData之前检查结果为null等等。

答案 3 :(得分:0)

PagedResponseList pagedResponsesList=responseService.ListSurveyResponses(1000).ResultData