C# 中条件编译的替代方案

2024-06-01

在 C# 中使用条件编译代码的替代方法是什么?

我有一个类,其中有很多基于 # ifdef 的代码。一段时间后,我的代码变得不可读。

寻找重构技术以提高代码的可读性和维护性#if defs


一件事是使用ConditionalAttribute http://msdn.microsoft.com/en-us/library/system.diagnostics.conditionalattribute.aspx:

[Conditional("DEBUG")]
public void Foo()
{
    // Stuff
}

// This call will only be compiled into the code if the DEBUG symbol is defined
Foo();

它仍然是条件编译,但是基于属性而不是#ifdef,这使得它通常更简单。

另一种选择是在执行时简单地使用布尔值,而不是在编译时执行所有操作。如果您可以向我们提供有关您想要实现的目标以及如何使用条件编译的更多详细信息,那将会很有用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 中条件编译的替代方案 的相关文章

随机推荐

  • 如何从 Ruby 模块中仅导入几个函数?

    假设我有一个带有以下方法的模块 function1 function2 function3 我想导入 function1 和 function2 但不导入 function3 有没有办法在红宝石中做到这一点 不确定是否有一种干净的方法来添加
  • onActivityResult 中的完成活动不起作用

    我有一对必须同生共死的活动 基本上 AlphaActivity 会做一些工作 然后发送一个意图 startActivityForResult 对于 Beta 活动 当 Beta 活动完成时 我希望它发送一个意图 startActivity
  • Clang 与 CLion:无法获取编译器信息

    我尝试通过更改在 CLion 中从 gcc 切换到 clang工具链偏爱 但现在 cmake 失败并显示以下内容 Cannot get compiler information Compiler exited with error code
  • 带阴影的弯曲 Android 工具栏

    我需要为工具栏或卡片视图提供弯曲的底视图 我尝试过的 bg toolbar xml
  • 在zooreg时间序列中查找非唯一索引条目时遇到问题

    我有几年的数据正在尝试将其转化为动物园对象 Dropbox 上的 csv https www dropbox com sh vg8w8pt16e0v3xs AABKtWqDkPu9JVKpwBXO36VOa dl 0 一旦数据被强制转换为动
  • iOS 内存警告

    我正在尝试使用从 Parse 数据库下载的图像填充集合视图 但我收到内存警告 然后偶尔崩溃 有谁知道其他应用程序如何设法呈现这么多图像而不崩溃 有人可以告诉我如何优化我已有的东西吗 这是所有相关代码 https gist github co
  • Powershell DSC Pull 服务器引发内部错误 - Microsoft.Isam.Esent.Interop 未找到

    我已按照 Powershell org 中的说明进行操作DSC Book http powershell org wp ebooks 设置 http Pull 服务器 Windows 2012 服务器 以与 DSC 一起使用 我设置了 ht
  • SignalR hub.js 缩小

    SignalR github 存储库可扩展性位于https github com SignalR SignalR wiki Extensibility https github com SignalR SignalR wiki Extens
  • C 中的自定义数据类型

    我正在研究密码学 需要使用一些非常大的数字 我还使用新的 Intel 指令进行需要 m128i 数据类型的无进位乘法 这是通过使用以浮点数据作为参数的函数加载它来完成的 我需要存储 2 1223 整数 然后对其求平方并存储该值 我知道我可以
  • Heroku 上的 Google Vision API 身份验证

    在 Heroku 上验证 Vision API 的最佳 简单方法是什么 在开发中我只使用 vision Google Cloud Vision new project instacult keyfile path to keyfile js
  • 用于使用 geopy 计算距离的经度格式/比例

    我使用 geopy 来简单计算两个长纬度坐标之间的距离 然而 我对经度应该采用什么比例感到困惑 纬度协调范围为 90 到 90 目前我已将经度设置为 0 360 度 应该是 180 到 180 才能满足 Great circle NYC 测
  • 从不同进程通过套接字 (UDP) 回复客户端

    我有一个服务器而不是 命令处理程序 进程 它通过 UDP 接收消息 并通过其发布的 API 无论该进程采用何种 IPC 机制 与该进程进行通信 从而将要做的工作委托给不同的进程 我们的系统有多个协作进程 然后 该 API 调用的结果会从命令
  • 根据字母顺序比较字符串[重复]

    这个问题在这里已经有答案了 编写一个函数 将两个字符串作为参数并返回较长的一个 如果字符串长度相等 则返回按字母顺序排在第一位的字符串 这是我到目前为止所拥有的 def strings x y if len x gt len y retur
  • 引用另一个项目

    在我编写的一个简单程序中 我想从另一个项目获取一个列表并访问其中的元素 由于我是Python新手 我真的不知道该怎么做 在我的项目中 我选中了我想要引用的项目名称的框 然后 我不知道该怎么做 一些谷歌搜索对我没有好处 所以我希望这里有人可以
  • Facebook 中用户的时区是如何编码的

    我需要检查用户的时区 但我找不到它的真正定义 参考API http developers facebook com docs reference api user says 用户的时区与 UTC 的偏移量 现在在维基百科上这些是可能的时区
  • 增加 Django 表单中的 CharField 宽度

    我正在延长UserCreationForm并添加了 username forms CharField max length 30 widget forms TextInput attrs size 80 但用户名字段宽度不会改变 我怎样才能
  • 如何计算加权平均值?

    我的语言是PHP 但是算法应该是相当通用的 我有一个关联数组 比方说 评级和评级次数 ratings array 1 gt 1 2 gt 3 3 gt 6 4 gt 3 5 gt 3 这相当于 1 2 2 2 3 3 3 3 3 3 4 4
  • SQL Server Express 到 .mdf 文件的连接

    两部分问题 我使用 VS 2015 Update 3 创建了一个 ASP NET MVC 5 应用程序 我在本地计算机上完成了该项目 突然 我无法再通过 SQL Server 对象资源管理器连接到 mdf数据库文件并出现以下错误 无法打开数
  • 何时使用 NoSql,使用哪一种? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • C# 中条件编译的替代方案

    在 C 中使用条件编译代码的替代方法是什么 我有一个类 其中有很多基于 ifdef 的代码 一段时间后 我的代码变得不可读 寻找重构技术以提高代码的可读性和维护性 if defs 一件事是使用ConditionalAttribute htt