命名空间vs类声明
本文关键字:声明 vs 命名空间 | 更新日期: 2023-09-27 18:04:15
我是c#的新手,我似乎找不到任何关于这方面的信息,所以我将在这里问一下。
必须声明命名空间中的类吗?
using System;
public class myprogram
{
void main()
{
// The console class does not have to be declared?
Console.WriteLine("Hello World");
}
}
如果我不使用命名空间,那么我必须声明一个类
class mathstuff
{
private int numberone = 2;
private int numbertwo = 3;
public int addhere()
{
return numberone + numbertwo;
}
using System;
public class myprogram
{
void main()
{
// the class here needs to be declared.
mathstuff mymath = new mathstuff();
Console.WriteLine(mymath.addhere());
}
}
我理解对了吗?
名称空间只是一种明确类所在上下文的方法。想想你自己的名字,拉尔夫。这个世界上有很多拉尔夫,但你就是其中之一。另一种消除歧义的方法是加上你的姓氏。所以如果我们有两个拉尔夫,我们就有更大的机会谈论你。
同样适用于类。如果你定义了AClass
类,你需要定义另一个AClass
类,那就没有办法区分这两者。命名空间就是那个"姓"。一种虽有类,但仍能区分两个不同类,具有相同名称的方法。
回答你的问题,它与"not have To declare"无关。这样只会更容易编写代码。
例如:using System;
public class myprogram
{
void main()
{
// the class here needs to be declared.
Console.WriteLine("blah");
}
}
由于using System;
,您不必声明Console
的命名空间。只有一个Console
可用,它位于System
名称空间中。如果您不声明using System;
名称空间,那么您需要解释在哪里可以找到Console
。这样的。
System.Console.WriteLine("blah");
从MSDN: namespace关键字用于声明一个作用域。这个名称空间作用域允许您组织代码,并为您提供了一种创建全局唯一类型的方法。
更多信息请查看MSDN的命名空间
我想你的意思是"你可以声明一个没有命名空间的类吗?"是的,你可以,它被称为global
命名空间。
class BaseClass
{
}
class SubClass : global::BaseClass
{
}
但是,是非常的坏做法,您不应该在生产应用程序中这样做。