C#委托

委托是一种引用方法的类型。委托定义出它想要代表的方法的原型,然后它可以和任何符合它所定义的方法的原型相关联。但使用委托时就犹如你在调用一个方法。
委托使你动态的调用方法变成可能。而动态调用方法的意义就在于你可以在任意的地方插入任意的代码
//=========================================================================================
using System;
using System.Collections.Generic;
using System.Text;

namespace Delegate_Test
{
    /// <summary>
    /// 定义一个委托。委托和类一样都是一种类型。只是委托所代表的是一种被定义好原型的方法。
    /// </summary>
    public delegate void Mydeleg(string msg);

    public class Program
    {
        static void Main(string[] args)
        {
            //实例化一个委托,也可以看成将一个委托和一个实际想要调用的方法关联起来。
            //其中new Mydeleg(GetMessage) 中的GetMessage是定义个方法的实例。你也可以将GetMessage换成GetMessage2
            //原因稍后将要进一步的讲解。
            Mydeleg methodRef = new Mydeleg(GetMessage);
            methodRef("The first message!");

            Console.WriteLine("================================================");

            //实例化message对象
            Message message = new Message();
            //设置message对象中的委托类型的成员变量。
            message.deleg = new Mydeleg(SendMobilePhone);
            //当调用这句的时候实际上在Send方法中附加了底下SendMobilePhone中包含的逻辑(发送方式的逻辑)。
            message.Send("I love you");
            Console.Read();
        }

        static void GetMessage(string msgInfo)
        {
            Console.WriteLine(msgInfo);
        }

        static void GetMessage2(string msgInfo2)
        {
            Console.WriteLine(msgInfo2);
        }

        static void SendMobilePhone(string msg)
        {
            //表示发送到手机上的逻辑。
            Console.WriteLine(msg + " send to MobilePhone");
        }
    }

    //==============================================================================================================

    public class TestClass
    {
        public void GetMessage(string msg)
        {
            Console.WriteLine(msg);
        }
    }

    //==============================================================================================================

    /// <summary>
    /// 假设这是一能够发送信息的类。我们可以通过这个类处理管理"信息的各种处理“。
    /// </summary>
    public class Message
    {
        public Mydeleg deleg;
        public void Send(string message)
        {
            //表示我在发送信息前对信息做一定的加工。
            string result = "you have a message : " + message;
            //然后我们需要将这个信息发送。现在我在想一件事情。我要将信息怎么发送?发送到哪?
            //发生信息到手机, 那你需要在这里编写发送到手机上的代码逻辑
            //发送信息到邮箱, 那你需要在这里编写发送到邮箱上的代码逻辑
            //发送信息到QQ上,  那你需要在这里编写发送到QQ上的代码逻辑
            //或发送信息到手机并且邮箱、QQ中,又是相应的逻辑。
            //我还能列举很多。你现在要解决的问题是如果在不改变这个类的前提下你如何将信息发送到客户需要发送的地方。
            //我的想法是,使用委托。
            if (deleg != null)
                //调用这句你将发现实际是将外部定义的方法引用到这里。使你的方法拥有了在外部定义发送逻辑的能力。
                deleg(message);
        }
    }

}

转载于:https://www.cnblogs.com/RobotTech/archive/2007/09/23/903238.html

多角色体系 支持管理员、商家、消费者三种角色,权限分级管控: 管理员:负责平台整体配置、用户审核、数据监控等全局操作。 商家:管理店铺信息、发布商品、处理订单、回复评价等。 消费者:浏览商品、加入购物车、下单支付、评价商品等。 实现用户注册(手机号 / 邮箱验证)、登录(支持密码 / 验证码 / 第三方登录)、个人信息管理(头像、收货地址、密码修改)。 权限精细化控制 商家仅能管理自家店铺及商品,消费者仅能查看和购买商品,管理员拥有全平台数据访问权限。 二、商品管理功能 商品信息维护 商家可发布商品:填写名称、分类(如服饰、电子产品)、子类别(如手机、笔记本)、规格(尺寸、颜色、型号)、价格、库存、详情描述(图文)、物流信息(运费、发货地)等。 支持商品上下架、库存调整、信息编辑,系统自动记录商品状态变更日志。 商品分类与搜索 按多级分类展示商品(如 “数码产品→手机→智能手机”),支持自定义分类体系。 提供智能搜索功能:按关键词(名称、品牌)搜索,支持模糊匹配和搜索联想;结合用户浏览历史对搜索结果排序(优先展示高相关度商品)。 商品推荐 基于用户浏览、收藏、购买记录,推荐相似商品(如 “浏览过该商品的用户还买了…”)。 首页展示热门商品(销量 TOP10)、新品上架、限时折扣等推荐列表。 三、订单与交易管理 购物车与下单 消费者可将商品加入购物车,支持修改数量、选择规格、移除商品,系统自动计算总价(含运费、折扣)。 下单流程:确认收货地址→选择支付方式(在线支付、货到付款)→提交订单→系统生成唯一订单号。 订单处理流程 订单状态跟踪:待支付→已支付→商家发货→物流运输→消费者收货→订单完成,各状态变更实时通知用户。 商家端功能:查看新订单提醒、确认发货(填写物流单号)、处理退款申请(需审核理由)。 消费者端功能:查看订单详情、追踪物流、申请退款 / 退货、确认收货。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值