【发布时间】:2018-11-02 18:00:10
【问题描述】:
我正在尝试在 LL 类中创建一个节点,这是两个不同的 .cs 文件
LL.cs
using System;
using Node;
namespace LinkedList{
class LL{
private Node head{get; set;}
public static void Main(){
}
}
}
Node.cs
using System;
namespace Node
{
public class Node{
private int data{get; set;}
private Node next{get; set;}
}
}
为什么会出现这些错误:
LL.cs(2,7):错误 CS0246:找不到类型或命名空间名称“节点”(您是否缺少 using 指令或程序集 参考?)
还有:
LL.cs(7,17):错误 CS0246:找不到类型或命名空间名称“节点”(您是否缺少 using 指令或程序集 参考?)
如果我使用using Node 指令来指示命名空间。
谢谢。
编辑: 一个明显的解决方案是将两个类放在同一个 .cs 文件中,就像这样
using System;
namespace LinkedList{
//using global::Node;
public class Node{
private int data { get; set; }
private Node next { get; set; }
}
class LL{
private Node head { get; set; }
public static void Main(){
}
}
}
但这被认为是不好的做法,这将导致未来的问题,所以我正在尝试解决主要问题,以便它不会在未来的项目中再次出现。
【问题讨论】:
-
这应该可以 - 你是如何编译的?
-
您的命名空间与类名相同。将命名空间从“节点”更改为其他名称。
-
按原样尝试此代码时看到的错误是,Node 是一个命名空间,但用作类型。我强烈建议不要同时使用
Node作为命名空间和类型以避免混淆。或使用private Node.Node ...。但如果是我,我会改名。 -
您可能还应该将这两个类放在同一个命名空间中。
标签: c# oop namespaces