在c#中常用的特性

在C#中,特性(Attributes)是一种将元数据应用于程序实体(如类、方法、属性等)的方式。这些元数据可以在编译时和运行时被读取,常用于配置、自定义行为、装饰器模式等场景。以下是一些C#中常用的特性:

  1. [Serializable] - 表示该类可以被序列化,用于二进制序列化。

    [Serializable]
    public class MyClass { }

  2. [Obsolete] - 标记一个类、方法或属性为过时,如果代码中使用了这些元素,编译器会发出警告。

    [Obsolete("Use NewClass instead.")]
    public class OldClass { }

  3. [AttributeUsage] - 用于定义自定义特性的属性。

    [AttributeUsage(AttributeTargets.Class, Inherited = false)]
    public class MyCustomAttribute : Attribute { }

  4. [Conditional] - 用于条件编译,只有当定义了特定的符号时,方法才会被调用。

    [Conditional("DEBUG")]
    public void DebugMethod() { }

  5. [Flags] - 表示枚举类型可以用于位字段,即枚举值可以进行位运算。

    [Flags]
    public enum MyFlags { None = 0, Option1 = 1, Option2 = 2 }

  6. [DefaultValue] - 用于指定参数的默认值。

    public void MyMethod([DefaultValue("true")] bool flag) { }

  7. [ParamArray] - 允许方法接受不定数量的参数。

    public void MyMethod([ParamArray] string[] args) { }

  8. [DebuggerStepThrough] - 告诉调试器在调试时跳过该方法的代码。

    [DebuggerStepThrough]
    public void MyMethod() { }

  9. [DebuggerDisplay] - 控制调试器显示对象的方式。

    [DebuggerDisplay("MyObject {MyProperty}")]
    public class MyObject { public int MyProperty { get; set; } }

  10. [DebuggerBrowsable] - 控制调试器如何浏览对象的成员。

    [DebuggerBrowsable(DebuggerBrowsableState.Never)]
    public int MyProperty { get; set; }

  11. [CLSCompliant] - 表示程序元素是否符合公共语言规范(CLS)。

    [CLSCompliant(true)]
    public class MyCompliantClass { }

  12. [CallerMemberName] - 当使用StringInfoInsertLineInfo方法时,自动传递调用成员的名称。

    public void Trace([CallerMemberName] string memberName = "")
    {
        Console.WriteLine($"Called {memberName}");
    }

特性的使用可以极大地提升代码的灵活性和表达能力

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#是一种通用的面向对象编程语言,具有许多特性可以在实际开发发挥重要作用。以下是一些常见的C#特性及其在实际开发的用法: 1. 类和对象:C#是一种面向对象的语言,可以使用类和对象来组织和管理代码。通过定义类和创建对象,可以实现数据封装、继承和多态等面向对象的概念。 2. 泛型:C#的泛型特性允许在编写代码时使用类型参数,从而实现代码的重用和类型安全。通过泛型,可以编写更加通用和灵活的代码,提高代码的可读性和可维护性。 3. 委托和事件:C#的委托和事件机制可以实现事件驱动的编程模式。通过定义委托类型和事件,可以将方法作为参数传递,并在特定条件下触发相应的事件处理程序。 4. LINQ:Language Integrated Query(LINQ)是C#的一种查询语言,可以方便地对各种数据源进行查询和操作。通过使用LINQ,可以简化数据查询、过滤、排序和转换等操作,提高开发效率。 5. 异步编程:C#提供了异步编程的支持,可以使用async和await关键字来编写异步代码。通过异步编程,可以提高程序的响应性和并发性,避免阻塞主线程。 6. 特性(Attributes):C#特性是一种用于为代码元素(如类、方法、属性等)添加元数据的机制。通过使用特性,可以为代码添加额外的信息,如调试信息、性能优化等。 7. 反射:C#的反射机制允许在运行时动态地获取和操作类型信息。通过反射,可以实现一些高级的编程技巧,如动态创建对象、调用方法和访问属性等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值