【发布时间】:2011-06-14 00:35:16
【问题描述】:
我从 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 4.0 中并不是新的,您可能需要知道它们自 C++ 时代以来就存在。
-
他是说自 C/C++ 以来就存在预处理指令,而不是 C# 基于 C++。
-
@Joey,@yodaj007 说的是对的,我不是说遗产。
-
C# 4 规范第 2.5 节回答了您的问题;当您对语言有疑问时,我鼓励您阅读它。
-
@Joey,你正在移动球门柱。这里没有人说他们是一样的。停止尝试开始争论。
标签: c# c-preprocessor