大话C#语言——高级教程总结

本文详细介绍了C#的高级特性,包括反射、属性、索引器、委托、事件、集合、泛型、匿名方法、不安全代码和多线程。通过实例展示了如何在实际开发中应用这些特性,帮助读者深入理解C#编程。
摘要由CSDN通过智能技术生成

推荐阅读:

特性

       用于在运行时传递程序中各种元素(比如类、方法、结构、枚举、组件等)的行为信息的声明性标签。

Net 框架提供了三种预定义特性:

AttributeUsage
Conditional
Obsolete

反射

       反射指程序可以访问、检测和修改它本身状态或行为的一种能力。
       程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。

反射(Reflection)有下列用途:

它允许在运行时查看特性(attribute)信息。
它允许审查集合中的各种类型,以及实例化这些类型。
它允许延迟绑定的方法和属性(property)。
它允许在运行时创建新类型,然后使用这些类型执行一些任务。

属性

       使用 访问器(accessors) 让私有域的值可被读写或操作。例如:有一个名为 Student 的类,带有 age私有域。我们不能在类的范围以外直接访问这些域,但是我们可以拥有访问这些私有域的属性。
代码实现如下:

using System;
namespace 属性
{
   
   class Student
   {
   
      private int age = 0;
      
      // 声明类型为 int 的 Age 属性
      public int Age
      {
   
         get
         {
   
            return age;
         }
         set
         {
   
            age = value;
         }
      }
    }
    
    class ExampleDemo
    {
   
      public static void Main()
      {
   
         // 创建一个新的 Student 对象
         Student s = new Student();
         s.Age = 9;         //9
         // 增加年龄
         s.Age += 1;         //10
         Console.ReadKey();
       }
   }
}

索引器

       允许一个对象可以像数组一样被索引。当为类定义一个索引器时,该类的行为就会像一个虚拟数组(virtual array) 一样。可以使用数组访问运算符 [ ] 来访问该类的实例。
格式如下:

//索引器定义的时候带有 this 关键字,它指向对象实例
element-type this[int index] 
{
   
   // get 访问器
   get 
   {
   
      // 返回 index 指定的值
   }

   // set 访问器
   set 
   {
   
      // 设置 index 指定的值 
   }
}

下面举个例子来看看索引器如何使用:

using System;
namespace 索引器
{
   
   class IndexedNames
   {
   
      private string[] namelist = new string[size];
      static public int size = 10;
      //初始化每个元素的值
      public IndexedNames()
      {
   
         for (int i = 0; i < size; i++)
         namelist[i] = "N. A.";
      }
      public string this[int index]
      {
   
      //取值,输出时用到
         get
         {
   
            string tmp;

            if( index >= 0 && index <= size-1 )
            {
   
               tmp = namelist[index];
            }
            else
            {
   
               tmp = "";
            }

            return ( tmp );
         }
         //设置值,重置值得时候使用
         set
         {
   
            if( index >= 0 && index <= size-1 )
            {
   
               namelist[index] = value;
            }
         }
      }

      static void Main(string[] args)
      {
   
         IndexedNames names = new IndexedNames();
         names[0] = "被重置后的值";
         for ( int i = 0
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱上游戏开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值