繁体   English   中英

C#源代码中的#if,#else,#endif

[英]#if, #else, #endif in C# source code

我从MSDN获得了一个示例代码,我发现了以前从未见过的代码语法:

namespace Mvc3RemoteVal.Controllers 
{
        public class HomeController : Controller
        {
            IUserDB _repository;

#if  InMemDB
            public HomeController() : this(InMemoryDB.Instance) { }
#else
            public HomeController() : this(new EF_UserRepository()) { }
#endif


            public HomeController(IUserDB repository) 
            {
                _repository = repository;
            }

            [...]
        }

#if#else#endif什么?

什么是#if InMemDB

什么是InMemDB 一个变量?

这些被称为预处理器指令,并且自.NET 1.0以来就存在。 它们允许您定义不同的编译指令,例如InMemDB ,如果已定义此变量,编译器将评估或不评估块。 #if指令的文档提供了更深入的概述。

要定义变量,可以使用/ define编译器选项,或使用Visual Studio中项目属性的“ 构建”选项卡中的条件编译符号

替代文字

这些不是Framework 4的新功能

这是您可以用于开发阶段和测试的功能:您可以声明:

#Define something

接着

#if something

将执行“if”中的所有代码。 所有不是的代码,不会。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM