c# - 在较大的 #if 条件块内的新行中包含 #if 的多行字符串
问题描述
我有一些 C# 代码包含一个多行字符串(这是一些代码模板),其中有一些以#if something
. 这一切正常,除非我将整个 C# 类包装在实际条件#if
#endif
中,在这种情况下,编译器会说“无效的预处理器指令”。
代码片段:
#if WIN32
class Something {
string s = @"
#if SOMETHING
#endif";
}
#endif
有没有办法使这项工作?我曾考虑在我的代码模板中使用不同的字符,并使用替换来修复它,但这对我来说不是一个很好的解决方案,因为它使代码模板更难理解。
解决方案
我会做以下事情:
const string hash = "#";
#if WIN32
class Something {
string s = $@"
{hash}if SOMETHING
{hash}endif";
}
#endif
推荐阅读
- java - How to write large raw XML file to Oracle db using Blob object?
- swiftui - SwiftUI Canvas 是空白还是崩溃了?
- java - Aspose - 将 Excel 转换为 PDF 很慢
- azure - 使用新的 Pulumi azuread 模块的身份验证错误
- sql - 如何删除我的查询结果中的重复项?
- winapi - 如何丢弃窗口的一些消息?
- c++ - 动态计算 unicode 字符
- asp.net-core - Hub handshake failed with error 'WebSocket is not in the OPEN state' during start(). Stopping HubConnection
- python - I got an error in a code which is related to NumPy array
- android-studio - 添加尾随逗号的键盘快捷键?(颤振和安卓工作室)