我知道在方法上使用条件属性已经有一段时间了,但我刚刚发现它也可以在属性类上使用,所以我编写了一些代码来测试它,但它没有按预期执行。
此 MSDN 页面显示了如何在页面底部的属性类上使用条件属性:https ://msdn.microsoft.com/en-us/library/4xssyw96%28v=vs.90%29.aspx 。
顺便说一句,我正在使用 Unity 引擎。我认为这不重要,但我猜可能是这样。
这是我写的测试代码:
using System.Reflection;
using UnityEngine;
[System.Diagnostics.Conditional("UNITY_EDITOR")]
public class TestAttribute : System.Attribute
{
public string text;
public TestAttribute(string text)
{
this.text = text;
}
}
public class NewBehaviourScript : MonoBehaviour
{
[Test("This shouldn't exist on android")]
public void Awake()
{
#if UNITY_EDITOR
Debug.Log("This only gets logged in the Unity Editor, not in an Android build");
#endif
Debug.Log("Begin Attribute Test");
{
object[] attributes = typeof(NewBehaviourScript).GetMethod("Awake").GetCustomAttributes(true);
for (int i = 0; i < …Run Code Online (Sandbox Code Playgroud)