程序员开发实例大全宝库

网站首页 > 编程文章 正文

C#夯实基础-委托(c#委托的实现)

zazugpt 2024-09-07 01:50:45 编程文章 21 ℃ 0 评论

什么是委托

委托相当于是一个类型,比如String,是对一个函数或者方法的抽象类型。相当于定义了一个函数的模板,包含返回值,当前函数包含的参数,但是不包含任何的实现。

要注意是对方法或者是函数。

示例

定义一个委托,使用关键字delegate

deletegate string GetString(string paramA);

以上函数名是GetString 参数是ParamA, 返回值是string

使用,代码1

    public class DelegateTest2
    {
        /// <summary>
        /// 定义一个委托
        /// </summary>
        /// <param name="paramA">参数paramA</param>
        /// <returns></returns>
        private delegate string GetId(string paramA);

        /// <summary>
        /// 得到用户ID
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns>
        public static string GetUserId(string userId)
        {
            return "当前用户Id" + userId;
        }

        public static string GetClassId(string userId)
        {
            return "当前班级的Id是:" + userId;
        }

        /// <summary>
        /// new 一个委托需要指向一个方法
        /// str1.tostring 是一个String的一个方法名,
        /// 
        /// </summary>
        public static void DoTest1()
        {
            //将一个符合委托要求的方法 GetUserId赋值给getString
            GetId getId = GetUserId;

            //使用函数方法
            string curId1 = getId("学号1011");
            Console.WriteLine(curId1);

            //将第二个符合委托要求的方法 GetClassId赋值给getString
            getId = GetClassId;
            string curId2 = getId("班级981");
            Console.WriteLine(curId2);
        }
    }

代码说明

定义了一个委托,功能是得到Id

定义了两个符合委托规范的函数的实现, GetUserId与GetClassId.

当前GetUserId与GetClassId这两个函数的名,给当前委托GetId,完成委托的实例化。

最后进行使用委托实例化getId进行函数调用与输出。

以上代码的结果是:

当前用户Id学号1011
当前班级的Id是:班级981

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表