首页 > 解决方案 > 在较大的 #if 条件块内的新行中包含 #if 的多行字符串

问题描述

我有一些 C# 代码包含一个多行字符串(这是一些代码模板),其中有一些以#if something. 这一切正常,除非我将整个 C# 类包装在实际条件#if #endif中,在这种情况下,编译器会说“无效的预处理器指令”。

代码片段:

#if WIN32
class Something {
    string s = @"
#if SOMETHING
#endif";
}
#endif

有没有办法使这项工作?我曾考虑在我的代码模板中使用不同的字符,并使用替换来修复它,但这对我来说不是一个很好的解决方案,因为它使代码模板更难理解。

标签: c#

解决方案


我会做以下事情:

const string hash = "#";

#if WIN32
class Something {
    string s = $@"
{hash}if SOMETHING
{hash}endif";
}
#endif

推荐阅读