标题:委托、枚举、位操作---你真的全部懂了吗?
取消只看楼主
lmn20100929
Rank: 2
等 级:论坛游民
帖 子:9
专家分:15
注 册:2011-3-25
结帖率:100%
 问题点数:0 回复次数:0 
委托、枚举、位操作---你真的全部懂了吗?
高手请回避,以下的东西是我最近复习C#基础时写的笔记,借这里的代码功能再贴到自己的QQ空间。
程序代码:
[color=#0000FF]using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 类
{
   
    class Program
    {
        static void Main(string[] args)
        {
            //常见委托声明,买1包烟
            buysmoke bsmoke1;
            bsmoke1 = buysmoke_call;
            bsmoke1(smokename.软白沙, 5);
            //快速委托声明,买2包烟
            buysmoke bsmoke2 = delegate(smokename name, double price)
            {
                Console.WriteLine("委托你帮我去买烟:\n-------------\n名称:{0}\n价格:{1}\n", name, price);
            };
            bsmoke2(smokename.硬白沙 | smokename.精白沙1代, 5.5 + 8);
            //另类委托声明:NET3.0以上,买3包烟
            buysmoke bsmoke3 = (name, price) =>
            {
                Console.WriteLine("委托你帮我去买烟:\n-------------\n名称:{0}\n价格:{1}\n", name, price);
            };
            smokename sn = smokename.精白沙2代 | smokename.黄盒芙蓉王 | smokename.蓝盒芙蓉王;
            bsmoke3(sn, 9.5 + 25 + 35);
            //来个枚举的异或位操作,把精白沙2代去掉
            sn = sn ^ smokename.精白沙2代;
            bsmoke3(sn, 25 + 35);
            //来个枚举的或位操作,把精白沙2代再加上
            sn = sn | smokename.精白沙2代;
            bsmoke3(sn, 9.5 + 25 + 35);
            //来个枚举的与位操作,把除精白沙2代之外的所有烟去掉
            sn = sn & smokename.精白沙2代;
            bsmoke3(sn, 9.5);
            Console.Read();
        }
        static void buysmoke_call(smokename name, double price)
        {
            Console.WriteLine("委托你帮我去买烟:\n-------------\n名称:{0}\n价格:{1}\n", name, price);
        }
    }

    delegate void buysmoke(smokename name, double price);

    [Flags]
    enum smokename
    {
        硬白沙 = 0x01, 软白沙=0x02, 精白沙1代=0x04, 精白沙2代=0x08, 黄盒芙蓉王=0x10, 蓝盒芙蓉王=0x20
        //分别对应二进制0001,0010,0100,1000,10000,100000
        //如果同时选择硬白沙和软白沙则枚举的值为:0011
        //位操作符 |,&,^ 用于枚举的添加,排除,删除
    }
}


[/color]

[ 本帖最后由 lmn20100929 于 2011-4-14 09:31 编辑 ]
2011-04-14 09:29



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-336605-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.057826 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved