Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.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#_.net_Generics - Fatal编程技术网

C# 关于泛型类型的澄清

C# 关于泛型类型的澄清,c#,.net,generics,C#,.net,Generics,给定下面的代码块(源代码:)。。。我收到此错误:使用泛型类型“System.Collections.generic.List”需要“1”类型参数 我只需将我的声明修改为:var-groups=newlist(),就可以解决这个问题这只是示例代码中语法无效的一种情况吗?然而,我在这里问这个问题,因为我不止一次遇到过这个问题,我想知道在我的VS环境中是否存在某种VS.NET“严格设置” public class GroupController : Controller { public Ac

给定下面的代码块(源代码:)。。。我收到此错误:使用泛型类型“System.Collections.generic.List”需要“1”类型参数

我只需将我的声明修改为:
var-groups=newlist(),就可以解决这个问题这只是示例代码中语法无效的一种情况吗?然而,我在这里问这个问题,因为我不止一次遇到过这个问题,我想知道在我的VS环境中是否存在某种VS.NET“严格设置”

public class GroupController : Controller
{
    public ActionResult Index()
    {
        var groups = new List();
        return View(groups);
    }

    /// another example...
    Assert.IsInstanceOfType(result.ViewData.Model, typeof(IEnumerable));  // same error

    Assert.IsInstanceOfType(result.ViewData.Model, typeof(IEnumerable<string>)); // corrected

}
公共类GroupController:Controller
{
公共行动结果索引()
{
变量组=新列表();
返回视图(组);
}
///另一个例子。。。
Assert.IsInstanceOfType(result.ViewData.Model,typeof(IEnumerable));//相同错误
Assert.IsInstanceOfType(result.ViewData.Model,typeof(IEnumerable));//已更正
}

这是链接网页中的错误。如果查看HTML源代码,可以看到泛型类型参数有一个参数:

namespace ContactManager.Controllers
{
    public class GroupController : Controller
    {
        public ActionResult Index()
        {
            var groups = new List<Group>();
            return View(groups);
        }

    }
}
namespace ContactManager.Controllers
{
公共类GroupController:Controller
{
公共行动结果索引()
{
变量组=新列表();
返回视图(组);
}
}
}
同样的情况也适用于上述示例(或者,在您的问题中,如下所示):

//断言
Assert.IsInstanceOfType(result.ViewData.Model,typeof(IEnumerable));

是的,这似乎是示例代码呈现为HTML的方式中的一个错误

是的,这在呈现的示例代码中是无效语法

增加混淆的一点是在代码中同时使用
IEnumerable
IEnumerable
。这没关系,因为
IEnumerable
IEnumerable
是不同的类型。第一种是非属的,第二种是属的


将其与
列表
进行比较-没有非通用的
列表
类型。(最接近的等价物是
ArrayList

感谢所有快速响应!我应该澄清一下,这两条IEnumerable行是我为了简洁而添加的。
// Assert
Assert.IsInstanceOfType(result.ViewData.Model, typeof(IEnumerable<Group>));