C#——什么是Attribute (特性)简述

在观摩大神的代码中,我们经常看到这些东西出现 ,或许你也用过 [HideInInspector]   [Header()]

 [ ] 

一开始,鬼晓得这个什么东西。

方括号加看不懂的英文、参数,在类、变量名前。相信你也有和我一样问题。

可是遇见新的事物,人都有好奇的的心理,这什么东西?

好奇害死猫  

自己看了好多文章,敲你妈

[RequireComponent( typeof( Interactable ) )]
public class Timor : MonoBehaviour
{
    [EnumFlags]
    public Hand.AttachmentFlags attachmentFlags = Hand.defaultAttachmentFlags;

    [Header("colorFor")]
    public Color color = Color.cyan;

    [HideInInspector]
    public Vector3 pos = Vector3.Zero;
}

[Conditional("DEBUG")]
public void UnitTest()
{
//单元测试代码
}
}

 [ExecuteInEditMode, RequireComponent(typeof(MeshRenderer), typeof(MeshFilter))]
 public class SteamVR_PlayArea : MonoBehaviour
{
}

​

什么是特性

英文名是Attribute,中文名是特性

官方定义:

特性提供了功能强大的方法,用于将元数据或声明信息与代码(程序集、类型、方法、属性等)相关联。特性与程序实体关联后,即可在运行时使用“反射”的技术查询特性。

     特性具有以下属性:

  • 特性可向程序中添加元数据。元数据是有关在程序中定义的类型的信息。所有的 .NET 程序集都包含指定的一组元数据,这些元数据描述在程序集中定义的类型和类型成员。可以添加自定义特性,以指定所需的任何附加信息。
  • 可以将一个或多个特性应用到整个程序集、模块或较小的程序元素(如类和属性)。
  • 特性可以与方法和属性相同的方式接受参数。      
  • 程序可以使用反射检查自己的元数据或其他程序内的元数据。

个人理解,可以对类 变量 方法 等进行标记,从而实现某些功能。

 特性也是类,都是程序猿写的。。 可以理解为一个特殊的类

特性分两种

1.系统自带特性

如:[Obsolete]          [AttributeUsage]                 [Conditional]

2.自定义特性

自己去写。

后几篇写如何自定义特性。和常用特性

发布了57 篇原创文章 · 获赞 37 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_35030499/article/details/88310767