ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

chap05 C# 高级类型

2019-08-02 12:00:30  阅读:300  来源: 互联网

标签:chap05 C# Tuesday Friday Days2 高级 Thursday meetingDays Add


原文链接:http://www.cnblogs.com/wangshide/archive/2012/06/30/2570927.html

1. 委托 

可以参考 VS2010 自带例子

对委托的操作(+,-), 多播委托:

匿名委托:

 

2. 事件

1. 定义一个字符串列表类(继承自List<string>)
2. 定义委托
3. 根据委托定义事件
4. 定义激发事件的方法
5. 定义事件处理函数
6. 订阅
namespace MyEvent
{
    class Program
    {
        class StringList:List<string>
        {
            public delegate void dele();
            public event dele Changed;  // 事件定义(用委托)
            public new void Add(string item) // 用new隐藏基类中的方法
            {
                base.Add(item); // 调用基类中的方法
                Changed(); // 事件激发
            }
            
        }
        /// <summary>
        /// 事件处理函数
        /// </summary>
        static void ListChanged()  
        {
            Console.WriteLine("ListChanged_Add");
        }
        static void Main(string[] args)
        {
            StringList names = new StringList();
            names.Changed += ListChanged; // 事件订阅
            names.Add("Tom");
            names.Add("JIm");
            names.Add("Lily");
        }
    }
}

3. 结构——C语言的馈赠

  • 结构体中可以声明的内容:字段,属性,方法。
  • 结构是值类型,而类是引用类型。

4. 密封类、分部类

  • 密封类(sealed class):不能被继承的类
  • 分部类(partial class):将一个较长的类放在不同文件中

5. 枚举类型

声明方式:

enum Days { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday };

enum Months : byte { Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec };

默认情况下,枚举中每个元素的基础类型是 int。 可以使用冒号指定另一种整数值类型,如前面的示例所示。

枚举类型作为位标志

    [Flags]
    enum Days2
    {
        None = 0x0,
        Sunday = 0x1,
        Monday = 0x2,
        Tuesday = 0x4,
        Wednesday = 0x8,
        Thursday = 0x10,
        Friday = 0x20,
        Saturday = 0x40
    }
    class MyClass
    {
        Days2 meetingDays = Days2.Tuesday | Days2.Thursday;
    }

这样就可以使用:OR(|),XOR(^),AND(&)操作符

// Initialize with two flags using bitwise OR.
meetingDays = Days2.Tuesday | Days2.Thursday;

// Set an additional flag using bitwise OR.
meetingDays = meetingDays | Days2.Friday;

Console.WriteLine("Meeting days are {0}", meetingDays);
// Output: Meeting days are Tuesday, Thursday, Friday

// Remove a flag using bitwise XOR.
meetingDays = meetingDays ^ Days2.Tuesday;
Console.WriteLine("Meeting days are {0}", meetingDays);
// Output: Meeting days are Thursday, Friday

// Test value of flags using bitwise AND.
bool test = (meetingDays & Days2.Thursday) == Days2.Thursday;
Console.WriteLine("Thursday {0} a meeting day.", test == true ? "is" : "is not");
// Output: Thursday is a meeting day.

转载于:https://www.cnblogs.com/wangshide/archive/2012/06/30/2570927.html

标签:chap05,C#,Tuesday,Friday,Days2,高级,Thursday,meetingDays,Add
来源: https://blog.csdn.net/weixin_30363981/article/details/98186966

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有