用作类等效项的 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 Something
和 public class Car
。
【讨论】:
【参考方案2】:为了能够在不更改命名空间名称的情况下使用它(“但肯定更改命名空间名称是正确的方法”)。
但你可以在使用时使用类的文件路径,所以如果汽车类是命名空间“SomenameSpace.Viechels”
那么你可以像下面这样使用来避免上述冲突: SomenameSpace.Viechels.car _car; SomenameSpace.Viechels.car _carConfig;
【讨论】:
以上是关于用作类等效项的 C# 命名空间的主要内容,如果未能解决你的问题,请参考以下文章