用作类等效项的 C# 命名空间

Posted

技术标签:

【中文标题】用作类等效项的 C# 命名空间【英文标题】:C# Namespaces used as class equivalent 【发布时间】:2015-03-04 15:19:53 【问题描述】:

有没有人遇到过如下一些较旧的 C# 代码,为了克服后来的编译器错误“'car' is a 'namespace' but is used like a 'type'”,等效的方法是什么。

非常感谢。

namespace something.car

  public class Display : UserControl
  
    private car _car;  // comppiler error here
    public car carConfig  // comppiler error here
    
      get
      
        return this._car;
      
      set
      
        this._car = value;
      
    
  


【问题讨论】:

car 在您的示例中是一个命名空间。 不要将类命名为命名空间。就这么简单。您可能可以为命名空间设置别名以避免该问题。 在这个例子中,汽车是一个类吗?按原样阅读您的示例,您正在尝试实例化一个命名空间,编译器正确指出这是无法完成的。 【参考方案1】:

将您的第一行从 namespace something.car 更改为

namespace Something.SomethingElse

并确保在 private car _car;public car carConfig 行中定义了一个类 car

作为旁注,用 Pascal 表示法拼写命名空间和类名是很常见的,例如。 G。 namespace Somethingpublic class Car

【讨论】:

【参考方案2】:

为了能够在不更改命名空间名称的情况下使用它(“但肯定更改命名空间名称是正确的方法”)。

但你可以在使用时使用类的文件路径,所以如果汽车类是命名空间“SomenameSpace.Viechels”

那么你可以像下面这样使用来避免上述冲突: SomenameSpace.Viechels.car _car; SomenameSpace.Viechels.car _carConfig;

【讨论】:

以上是关于用作类等效项的 C# 命名空间的主要内容,如果未能解决你的问题,请参考以下文章

C# 常用 命名空间都有哪些 这些命名空间是的作用是?

C#中类和命名空间是啥?为啥要用?啥时候用到?请高手详细说明

C#命名空间大全详细教程

C#中的Collections命名空间

在C#中获取命名空间中的类列表[重复]

c#如何获取某一命名空间下的所有的类的信息(方法以及参数)