Visual Studio 中的 using 语句在哪里

Posted

技术标签:

【中文标题】Visual Studio 中的 using 语句在哪里【英文标题】:Where are the using statements in Visual Studio 【发布时间】:2015-12-09 00:29:35 【问题描述】:

从这些年的经验来看,我觉得很奇怪。 我在 Program 类和 Main 方法中的控制台应用程序如下所示。

namespace NRules.Samples.RuleBuilder

    internal class Program
    
        private static void Main(string[] args)
        
            var repository = new CustomRuleRepository();
            repository.LoadRules();

            ISessionFactory factory = repository.Compile();
            ISession session = factory.CreateSession();
        
    

这就是整个 Program.cs 文件的内容。 ISessionFactoryISession 位于 NRules 命名空间中,因此 我期待一个 using 语句,没有它不应该编译。但奇怪的是,这也符合并运行。

我错过了什么?是不是因为这里的命名空间是 NRules.Samples.RuleBuilder ,所以 Visual Studio 2013 不再需要 NRules 了? 当我将鼠标悬停在界面线上时,工具提示也会正确显示 NRules.ISession。

【问题讨论】:

它在父命名空间中,并且无需任何 using 语句即可使用。 相关:***.com/questions/768905/namespace-and-sub-namespaces 奇怪,我怎么从来没有意识到这一点。还是谢谢!! 【参考方案1】:

你的命名空间NRules.Samples.Rulebuilder实际上是这样的:

namespace NRules

    namespace Samples
    
        namespace Rulebuilder
        
            internal class Program /*...*/
        
    

由于您的类位于 NRules 命名空间内,因此您不需要 using 语句来导入 NRules 的公共成员。

【讨论】:

以上是关于Visual Studio 中的 using 语句在哪里的主要内容,如果未能解决你的问题,请参考以下文章

使用语句 FileStream 和/或 StreamReader - Visual Studio 2012 警告

使用语句 FileStream 和/或 StreamReader - Visual Studio 2012 警告

Visual Studio Intellisense没有显示某些类

c# Using Settings under visual studio 2012

怎样在visual studio 2008中的c#控制台中用console.writeline语句输出一个字符数组?用foreach循环怎么写

为 Visual Studio 代码中的每个链接语句添加换行符