首页 > 解决方案 > C# Vector 类型必须是不可为空的?

问题描述

public Vector<lecture> GetAvlLectures()
{
    Vector<lecture> ret = new Vector<lecture>();
    return ret;
}

这是我的代码,我收到了这个错误(矢量:System.Numerics):

“讲座”类型必须是不可为空的值类型,才能将其用作泛型类型或方法“向量”中的参数“T”

我认为类“讲座”必须是不可为空的,它不能为空,但我找不到如何使讲座成为不可为空的。我发现的只是“讲座!” 这使得讲座可以为空。

这是讲课

public class lecture
{
    public enum status {
        WAITING_FOR_OPENING,
        WRITING,
        BEFORE,
        STUDIED,
        COMPLETED
    }
    public enum type
    {
        VIDEO,
        TEXT,
        DOCUMENT,
        PENDING
    }
    public string Name { get; set; }
    public string subject { get; set; }
    public status state { get; set; }
    public type lecType { get; set; }
    public lecture(string name, string subject, status state, type lecType)
    {
        //Initialization...
    }
}

我想知道这个错误和解决方案的原因是什么..

标签: c#

解决方案


提示在错误消息中:

“讲座”类型必须是不可为空的值类型,才能将其用作泛型类型或方法“向量”中的参数“T”

类(它lecture是)不是值类型,而是引用类型

如果您阅读该类的文档System.Numerics.Vector您会看到泛型T参数应该是“任何原始数字类型”。考虑到命名空间,这是有道理的Numerics


推荐阅读