Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何定义退货类型_C# - Fatal编程技术网

C# 如何定义退货类型

C# 如何定义退货类型,c#,C#,我有以下代码: public IList<Content.Grid> GetContentGrid(string pk) { // How can I define result to hold the return // data? I tried the following but it does not // work: var result = new IList<Content.Grid&

我有以下代码:

   public IList<Content.Grid> GetContentGrid(string pk)
    {
        // How can I define result to hold the return 
        // data? I tried the following but it does not
        // work:
        var result = new IList<Content.Grid>();

        var data = _contentRepository.GetPk(pk)
             .Select((t, index) => new Content.Grid()
             {
                 PartitionKey = t.PartitionKey
                 ....
             });

        switch (pk.Substring(2, 2))
        {
            case "00":
                return data
                    .OrderBy(item => item.Order)
                    .ToList();
                break;
            default:
                return data
                    .OrderBy(item => item.Order)
                    .ToList();
                break;

        }
    }
有人能告诉我如何声明名为result的变量吗。我尝试了以下操作,但出现语法错误:

var result = new IList<Content.Grid>();
var result=new IList();

IList是一个接口。不能构造接口的实例。必须创建实现该接口的具体类型的实例,例如:

var result = new List<Content.Grid>();
var result=newlist();

IList是一个接口。不能构造接口的实例。必须创建实现该接口的具体类型的实例,例如:

var result = new List<Content.Grid>();
var result=newlist();

IList
是一个接口,无法实例化。您需要选择IList的具体实现,并创建非抽象类的对象,例如,
List

var result = new List<Content.Grid>();
var result=newlist();

IList
是一个接口,无法实例化。您需要选择IList的具体实现,并创建非抽象类的对象,例如,
List

var result = new List<Content.Grid>();
var result=newlist();

不要使用
var
,你会没事的;您不需要默认值,因为它只会被覆盖

IList<Content.Grid> result;
IList结果;

不要使用
var
,你会没事的;您不需要默认值,因为它只会被覆盖

IList<Content.Grid> result;
IList结果;

不能实例化接口,只能实现它们

public class SomeList<T> : IList<T>
{

}

这应该可以做到。

您不能实例化接口,只能实现它们

public class SomeList<T> : IList<T>
{

}

这样就可以了。

您已经在交换机中返回了结果:

return data
    .OrderBy(item => item.Order)
    .ToList();
不需要在开关之前声明变量,也不需要在开关之后返回变量,因为您可以使用return语句跳出开关。(这就是你不需要休息的原因)

但是,您可以使用以下选项:

IList<Content.Grid> result;


您已在交换机中返回结果:

return data
    .OrderBy(item => item.Order)
    .ToList();
不需要在开关之前声明变量,也不需要在开关之后返回变量,因为您可以使用return语句跳出开关。(这就是你不需要休息的原因)

但是,您可以使用以下选项:

IList<Content.Grid> result;


如果IList是一个接口,您不能实例化它们。为什么不保留返回并删除中断?为什么有一个两个分支完全相等的开关呢?如果IList是一个接口,就不能实例化它们。为什么不保留返回值并删除中断?为什么会有一个两个分支完全相等的开关呢。var不是这里的问题,它是接口的实例化。@Tarka不,不是。此时不需要实例化任何东西;变量在
开关中赋值。您的答案是“不要使用var,您会没事的。”如果代码是
IList result=new IList()它仍然不起作用。您的回答表明使用
var
是问题所在,但事实并非如此。此外,答案中不需要括号。@TarkaDaal回答的是实际提出的问题,而不是虚构的问题
如何实例化IList
,答案是“在
开关之前创建一个未赋值的变量,在
开关中赋值,然后返回它”。没有理由创建一个您立即覆盖的虚拟
列表
。不过,谢谢你关于括号的观点。OP问的实际问题是“有人能告诉我如何声明名为result的变量吗?”。您编写代码的方式更加优雅,我没有和您争论。然而,
var
与您的解决方案或OP的问题无关。var不是这里的问题,它是接口的实例化。@Tarka不,不是。此时不需要实例化任何东西;变量在
开关中赋值。您的答案是“不要使用var,您会没事的。”如果代码是
IList result=new IList()它仍然不起作用。您的回答表明使用
var
是问题所在,但事实并非如此。此外,答案中不需要括号。@TarkaDaal回答的是实际提出的问题,而不是虚构的问题
如何实例化IList
,答案是“在
开关之前创建一个未赋值的变量,在
开关中赋值,然后返回它”。没有理由创建一个您立即覆盖的虚拟
列表
。不过,谢谢你关于括号的观点。OP问的实际问题是“有人能告诉我如何声明名为result的变量吗?”。您编写代码的方式更加优雅,我没有和您争论。但是,
var
与您的解决方案或OP的问题无关。这不必要地创建了一个列表,然后该列表将被丢弃。这不必要地创建了一个列表,然后该列表将被丢弃。变量声明中有不必要的括号。变量声明中有不必要的括号。