在C#和VB中导入命名空间的不同之处

时间:2011-09-16 16:37:44

标签: c# vb.net

我开始学习C#。

在VB中,当我们添加一个新的引用 - 在我的例子中是web引用 - 时,它只需键入namespace,然后输入类名来创建一个新对象。 例如:

Dim obj As NamespaceName.ClassName = New NamespaceName.ClassName

然后我在C#中应用这个概念。所以我的代码将是:

NamespaceName.ClassName obj = new NamespaceName.ClassName

......它不起作用。

实际上,在这两者之间导入命名空间有什么区别吗? 你能否在VB中给我一些关于Project-Wide Default Namespace Imports的解释?

更新 我的观点是为什么“在C#中,当我输入NamespaceName时,ClassName没有在Intellisense中列出?”。 但是,它在VB中做得很好,我必须导入一些东西吗? 也许,这与术语“项目范围的默认命名空间导入”有关。 (CMIIW)

解决

3 个答案:

答案 0 :(得分:4)

在C#中,在最后调用构造函数时需要括号()

NamespaceName.ClassName obj = new NamespaceName.ClassName();

VB.NET更宽松,不需要它们。

正如Anthony Pegram在评论中指出的那样,如果你使用object initializer语法在C#中,你不需要括号,你可以用大括号{ }替换它们

NamespaceName.ClassName obj = new NamespaceName.ClassName
{
    SomeProperty = "some value"
};

答案 1 :(得分:1)

你试过吗

NamespaceName.ClassName obj = new NamespaceName.ClassName();

答案 2 :(得分:0)

在您的C#项目中,您是否有对此类存在的程序集的引用?不同的项目模板可能有不同的默认程序集引用,或者您可能忘记在C#项目中添加VB项目中的引用。