- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
ConditionalAttribute
可用于根据定义的编译器符号删除对标记方法的调用。我假设我们无法自己创建此类,因为编译器必须专门寻找它。
我想知道还有哪些编译器或语言使用的其他类我们无法自己编写代码。
最佳答案
除了上面提到的;
AttributeUsageAttribute
有特殊的编译器支持,因为它限制(在编译时)你如何应用属性
ObsoleteAttribute
编译器也使用它来警告或错误使用。
不过,我怀疑,从技术上讲,您可以自己编写所有这些 - 只要您编写自己的核心库和 System.dll 即可;p 编译器通常是正在寻找一个模式/签名,因为它必须满足不同的运行时 - 实际上您不必使用 MS 核心库。但是,行为 是由编译器定义的,而不是类 - 因此您不能让它做任何不同的事情。
关于c# - ConditionalAttribute 和其他特殊类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6368731/
我查看了 ConditionalAttribute 声明,它是这样声明的: 我发现 JavaScript 代码是这样的: [AttributeUsage(AttributeTargets.Class
ConditionalAttribute 可用于根据定义的编译器符号删除对标记方法的调用。我假设我们无法自己创建此类,因为编译器必须专门寻找它。 我想知道还有哪些编译器或语言使用的其他类我们无法自己编
根据 ConditionalAttribute 上的文档类(class): Applying ConditionalAttribute to a method indicates to compile
我知道 ConditionalAttribute 的作用。 文档说它也可以应用于一个类,如果它是从 Attribute 派生的: [Conditional("DEBUG")] public class
这是出于好奇而提出的问题。我正在处理一些代码,并意识到以下代码仍然可以在发布时编译: class Program { [Conditional("DEBUG")] private st
我正在研究 .NET C#(特别是 Xamarin.Forms)。我不太了解编译器/运行时如何在幕后使用 ConditionalAttribute。 如果我有一个定义了 System.Diagnost
我尝试了以下代码: class Magic { [Conditional("DEBUG")] public static void DoMagic( int stuff ) {
我想编写一个 async 方法,但我希望它仅在使用特定编译常量编译程序集时才可调用。 单向 我可以做到这一点的一种方法是使用 pragma 指令,即像这样的条件编译常量: // Callee #if
我有一个 C++-CLI 引用类,它公开了一个用 C++ 实现的分析基础结构。 在 C++ 中,我有预处理器指令 PROFILING_ENABLED 来确定代码中是否存在侵入式分析函数。 当将这些暴露
是否有类似的条件不存在属性,或者如果该符号未定义,是否有使用条件属性仅包含方法的方法? 我正在寻找的是这样工作的: [Conditional("!SILVERLIGHT")] private void
在工作中,我们有很多 AS3 代码有条件地执行日志记录或断言,如下所示: CONFIG::debug { assert(blah > 2); } 我宁愿只写: assert(blah > 2)
在 C# 中,可以创建如下方法: [Conditional("DEBUG")] private void MyFunction() { } 在发布中,这个方法将不再“存在”。 使用 C++,我有一个类
我是一名优秀的程序员,十分优秀!