首页 > 其他分享 >委托之Action与Func

委托之Action与Func

时间:2023-11-22 23:22:51浏览次数:22  
标签:Console Func 委托 int ShowTool static WriteLine Action

代码:

using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;

namespace 委托之Action与Func
{
    class Program
    {
        static void Main(string[] args)
        {

            Console.WriteLine("【1】演示Action 委托:");
            var actDele = new Action(TestMethods.SelfIntroduce);
            actDele += TestMethods.SayHi;
            actDele.Invoke();//调用委托

            ShowTool.PrintDelimiter(50);
            Console.WriteLine("【2.1】演示Func<int,int,int>委托:");
            var func1 = new Func<int, int, int>(TestMethods.Add2Num);
            Console.WriteLine("请输入第一个数:");
            int a = ShowTool.GetNumInit();
            Console.WriteLine("请输入第二个数:");
            int b = ShowTool.GetNumInit();
            Console.WriteLine(func1.Invoke(a, b));

            ShowTool.PrintDelimiter(50);
            Console.WriteLine("【2.2】演示Func<double,double,double>委托:");
            var func2 = new Func<double,double,double>(TestMethods.Multiple2Num);
            Console.WriteLine("请输入第一个数:");
            double x = ShowTool.GetNumDouble();
            Console.WriteLine("请输入第二个数:");
            double y = ShowTool.GetNumDouble();
            Console.WriteLine(func2.Invoke(x, y)); 
            Console.ReadKey();

        }
    }
    class TestMethods
    {
        internal static void SayHi()
        {
            Console.WriteLine("Hello,Dell Mao");
        }
        public static void SelfIntroduce()
        {
            Console.WriteLine("Hi,My name is Dell Mao!");
        }
        public static int Add2Num(int a, int b)
        {
            return a + b;
        }

        public static double Multiple2Num(double a, double b)
        {
            return a * b;
        }
    }
    class ShowTool
    {
        public static void PrintDelimiter(int lenght)//打印一个分隔符
        {
            if (lenght < 8)
            {
                lenght = 8;
            }
            for (int i = 0; i < lenght; i++)
            {
                Console.Write("=");
            }
            Console.WriteLine();
        }
        public static int GetNumInit()
        {
            int a = 0;
            try
            {
                a = Convert.ToInt32(Console.ReadLine());
                return a;
            }
            catch (Exception)
            {
                MessageBox.Show("您输入的数据格式有误,将使用默认值0。");
                return a;
            }
        }
        public static double GetNumDouble()
        {
            double a = 0;
            try
            {
                a = Convert.ToDouble(Console.ReadLine());
                return a;
            }
            catch (Exception)
            {
                MessageBox.Show("您输入的数据格式有误,将使用默认值-999。");
                return a;
            }
        }
    }
}

运行结果:

标签:Console,Func,委托,int,ShowTool,static,WriteLine,Action
From: https://www.cnblogs.com/StephenYoung/p/17850581.html

相关文章

  • error LNK2001: 无法解析的外部符号 ___iob_func
    问题引入:在debug公司工具代码的时候,报错:***.lib,errorLNK2001:无法解析的外部符号___iob_func问题原因:可能引用的***.lib是在低版本的VS中编译的,编译***.lib的环境中有__imp____iob_func的定义,但在搞版本VS中被修改了,所以找不到符号。解决方法:将低版本VS中的定义转换成高版......
  • Spring5学习随笔-事务属性详解(@Transactional)
    学习视频:【孙哥说Spring5:从设计模式到基本应用到应用级底层分析,一次深入浅出的Spring全探索。学不会Spring?只因你未遇见孙哥】第三章、Spring的事务处理1.什么是事务?事务是保证业务操作完整性的一种数据库机制事务的4特点:ACIDA原子性C一致性I隔离性D持久性2.如何......
  • PostgreSQL - Transaction Isolation Level
     zzh@ZZHPC:~$dockerrun--namepostgres16-p5432:5432-ePOSTGRES_USER=root-ePOSTGRES_PASSWORD=aaa-dpostgres:alpine8e36b7bdc47572723a416c319b83f20b2eac7ef25adb3ac1a875e909f45ebdb6zzh@ZZHPC:~$dockerexec-itpostgres16createdb--username=root-......
  • MySQL - Transaction Isolation Level
     zzh@ZZHPC:~$dockerrun--namemysql8-p3306:3306-eMYSQL_ROOT_PASSWORD=aaa-eMYSQL_DATABASE=simple_bank-dmysqlac3cce2a639d2379500723acbd9149aa4f92d1d76c8c7b0c3abcc0b382b311afzzh@ZZHPC:~$dockerexec-itmysql8mysql-uroot-paaasimple_bankmys......
  • js深拷贝function
    js拷贝函数怎么操作使用bind()方法JavaScript的函数提供了bind()方法,可以用来创建一个新函数,该函数与原函数具有相同的代码,但其上下文和部分参数可以绑定。通过使用空的上下文和参数,可以实现函数的拷贝。functionoriginalFunction(){console.log("Originalfunction")......
  • 【漏洞复现】金蝶OA-EAS系统 uploadLogo.action 任意文件上传漏洞(0day)
    阅读须知    此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅......
  • 面试官:@Transactional(readOnly=true) 有什么用?还有谁不会?!
    原文翻译自:https://medium.com今天,我想谈谈Spring提供的@Transactional(readOnly=true)。之所以聊这个是因为我公司项目的代码里有很多@Transactional(readOnly=true),用过的同学都说@Transactional(readOnly=true)提高了性能。先思考以下几点:@Transactional(readOnly......
  • 《Java编程思想第四版》学习笔记37--关于 TextField的ActionListener接收器
    //:TextNew.java//TextfieldswithJava1.1eventsimportjava.awt.*;importjava.awt.event.*;importjava.applet.*;publicclassTextNewextendsApplet{Buttonb1=newButton("GetText"),b2=newButton("SetText");TextFie......
  • Vue3 Pinia对state的订阅监听($subscribe,$onAction)数据监听
    <template><divclass="main-container":class="{'show-scroll':targetIsVisible}"><div:style="{height:frameHeight+'px'}"class="main-content":class="{'show-......
  • 无涯教程-Dart - Parameterized Function函数
    参数是一种将值传递给函数的机制,参数是函数签名的一部分,参数值在调用过程中传递给函数,除非明确指定,否则传递给函数的值的数量必须与定义的参数的数量匹配。语法Function_name(data_typeparam_1,data_typeparam_2[…]){//statements}示例voidmain(){test_pa......