C# 面试题 目录

C# 中如何自定义特性?

推荐答案

在C#中,自定义特性是通过定义一个继承自System.Attribute的类来实现的。以下是一个简单的示例:

-- -------------------- ---- -------
----- -------

-- ------
-------------------------------------- - ------------------------ ------------- - -------
------ ----- ----------------- - ---------
-
    ------ ------ ----------- - ---- -

    ------ ------------------------ ------------
    -
        ----------- - ------------
    -
-

-- -------
--------------- -- - ------ ------------
------ ----- -------
-
    --------------- -- - ------ ------------
    ------ ---- ----------
    -
        -- ----
    -
-

本题详细解读

1. 自定义特性类的定义

自定义特性类必须继承自System.Attribute。在这个类中,你可以定义一些属性或字段来存储特性的元数据。例如,上面的MyCustomAttribute类有一个Description属性,用于存储描述信息。

2. AttributeUsage 特性

AttributeUsage特性用于指定自定义特性可以应用的目标类型(如类、方法、属性等)以及是否可以多次应用于同一目标。在上面的示例中,AttributeTargets.Class | AttributeTargets.Method表示该特性可以应用于类和方法,AllowMultiple = false表示该特性不能多次应用于同一目标。

3. 使用自定义特性

自定义特性可以通过将其放置在类、方法、属性等目标上来使用。在上面的示例中,MyCustomAttribute被应用于MyClass类和MyMethod方法。

4. 访问自定义特性

在运行时,可以通过反射来访问自定义特性。例如:

这段代码将输出MyClass类上的MyCustomAttribute的描述信息。

纠错
反馈