【问题标题】:Generic Type Arguments Issue泛型类型参数问题
【发布时间】:2016-05-09 09:18:44
【问题描述】:

基本上,我已经在互联网上搜索了一段时间以找出我遇到此问题的原因,但我找不到答案。有人可以帮我解决问题吗? 我听说它与命名空间有关,但我不完全知道我做错了什么。

错误在于我试图创建一个新的链接列表,它提出了需要类型 1 的争论与“LinkedList”和“List”。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Collections;

namespace LinkedList2
{
    public class Node
    {
        public int data;
        public Node next;
    }

    public class List
    {
        private Node head;
        public void AddData(int data)
        {
            Node node = new Node();
            while (node != null)
            {
                System.Console.Write(node.data);
                System.Console.Write(" -> ");
                node = node.next;
            }
            System.Console.WriteLine("");
        }
    }
}

class Program
{
        static void Main(string[] args)
         {
            LinkedList List1 = new List(); 
         }
}

严重性代码描述项目文件行 错误 CS0305 使用泛型类型“列表”需要 1 个类型参数 Soft153Assignment C:\Users\Casey\Desktop\University Assignments\Soft153Assignment\Soft153Assignment\Program.cs 53

严重性代码描述项目文件行 错误 CS0305 使用泛型类型“列表”需要 1 个类型参数 Soft153Assignment C:\Users\Casey\Desktop\University Assignments\Soft153Assignment\Soft153Assignment\Program.cs 53

【问题讨论】:

  • LinkedList List1 = new List() 应该是 List List1 = new List()。您的 namespaceLinkedList2 (将命名空间想象成您计算机上的目录),但您的 classList (将其视为 files)。您必须将变量 List1 声明为类型,而不是命名空间

标签: c#


【解决方案1】:

List.NET 框架内建在System.Collections.Generic 命名空间下的类名。如果您查看代码的顶部,您是 using System.Collections.Generic,这意味着“您的”public class List.NET 框架中的那个冲突

您可以做的是重命名“您的”List 或使用.NET 内置类,例如LinkedListList,因为它们几乎可以完成您希望特定集合类执行的操作。

你可以让你的代码看起来像这样...如果你需要使用 'List` 作为你的类的名称。

namespace LinkedList2
{
    public class Node
    {
        //...
    }
    public class List
    {
        //...
    }
    class Program
    {
        static void Main(string[] args)
        {
            List List1 = new List();
        }
    }
}

【讨论】:

  • 我希望我能做到,但是对于这个作业,我不允许使用内置函数。
  • 您可以将其重命名为MyList,因为当不同命名空间中存在同名类时,这通常会导致混淆。
  • 如果您需要将其命名为List,那么您可以将class Program 移动到您的namespace LinkedList2
  • 我用代码编辑了我的答案,你可以让它看起来像这样
  • 非常感谢 Paolo,它已经解决了我的问题并且不再有错误。我对此非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多