C# Attribute 特性,过期特性

6 篇文章 0 订阅

通过下列过程将属性应用到代码元素。

  1. 通过从 .NET Framework 导入属性的命名空间来定义新的属性或使用现有属性。

  2. 通过在紧邻代码元素之前放置属性来将该属性应用于代码元素。

    每种语言都有自己的属性语法。在 C++ 和 C# 中,属性由方括号括起来,并且通过空白(可包括分行符)与元素分隔。在 Visual Basic 中,属性由尖括号括起来,并且必须处于同一逻辑行;如果需要加分行符,则可以使用行继续字符。在 J# 中,使用特殊注释语法附加属性。

  3. 为属性指定位置参数和命名参数。

    位置参数是必需的,并且必须放在所有命名参数之前;位置参数对应于属性的构造函数之一的参数。命名参数是可选的,对应于属性 (Attribute) 的读/写属性 (Property)。在 C++、C# 和 J# 中,为每个可选参数指定 name=value,其中 name 是属性的名称。在 Visual Basic 中,指定 name:=value

属性在您编译代码时被发送到元数据中,并可通过运行库反射服务用于公共语言运行库以及任何自定义工具或应用程序。

按照约定,所有属性名都以 Attribute 结尾。但是,某些以运行库为目标的语言(如 Visual Basic 和 C#)不要求指定属性的全名。例如,如果要初始化 System.ObsoleteAttribute,只需将其引用为 Obsolete 即可。

将属性应用于方法

下面的代码示例显示如何声明 System.ObsoleteAttribute,该属性将代码标记为过时。字符串 "Will be removed in next version" 被传递到该属性。当调用该属性所描述的代码时,该属性将产生编译器警告以显示所传递的字符串。

using System;

public class Example

{

    // Specify attributes between square brackets in C#.

    // This attribute is applied only to the Add method.

    [Obsolete("Will be removed in next version.")]

    public static int Add(int a, int b)

    {

        return (a + b);

    }

}

class Test

{

    static void Main()

    {

        // This generates a compile-time warning.

        int i = Example.Add(2, 2);

    }

}

在程序集级别应用属性

如果要在程序集级别应用属性,请使用 Assembly 关键字。下列代码显示在程序集级别应用的 AssemblyNameAttribute

using System.Reflection;

[assembly:AssemblyName("MyAssembly")]

应用该属性时,字符串 "MyAssembly" 被放到文件元数据部分的程序集清单中。可以使用 MSIL 反汇编程序 (Ildasm.exe) 或通过创建检索该属性的自定义程序来查看该属性。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值