首页 > 其他分享 >【译】在调试时轻松导航代码委托

【译】在调试时轻松导航代码委托

时间:2024-07-02 09:02:05浏览次数:1  
标签:Console 委托 导航 代码 Action 方法 调试

  委托在现代代码中无处不在;委托是一种类型,它表示对具有特定参数列表和返回类型的方法的引用。开发人员使用委托将方法作为参数传递给其他方法。您可能熟悉的一个例子是事件处理程序。处理程序是可以通过委托调用的方法。委托让我想起 C++ 的函数指针,当然委托是完全面向对象的。

  有几种方式来表示委托,例如,Func 委托。此泛型委托表示接受一个或多个参数并返回指定类型值的方法。下面是一个示例(带有lambda表达式):

Func<int, int> Multiplier = n => n * 5;
int val = Multiplier(5);
Console.WriteLine(val);

  这个概念的最新变体是 Action,它提供了更方便的简写。使用 Action时,不必显式地定义一个用单个参数封装方法的委托。下面是一个例子:

Action<string> outputFunc = GetOutputRoutine();
outputFunc("Hello, World!");
static Action<string> GetOutputRoutine()
{
   return MyConsoleWriter;
}
static void MyConsoleWriter(string input)
{
   Console.WriteLine("Console: {0}", input);
}

  所以,这是一堂很好的课,但我为什么要提到这些呢?虽然我发现在编写代码时像传递参数一样传递方法很方便,但我也希望在调试时更容易跟踪。当然,您可以轻松地单步执行这些方法,但我通常希望在单步执行之前或之后快速导航到由委托表示的底层代码,随着 Visual Studio 17.10 的最新更新,这非常容易。

  当您在调试时暂停时,您可以将鼠标悬停在任何委托上并获得一个方便的跳转,这里是一个带有Func委托的示例。

  在本例中,Go to Source 清楚地表明,您将被重定向回 lambda 表达式。

  请注意,这不仅仅适用于托管代码的情况,它还支持 C++ 函数指针和 std::function。

  我们感谢您的反馈,帮助我们改进 Visual Studio,使其成为您最好的工具!您可以通过开发者社区与我们分享反馈,通过发送反馈来报告问题或分享您的建议,推动对新功能或现有功能的改进。

  请在 Twitter 上与 Visual Studio Debugger 团队保持联系。

 

原文链接:https://devblogs.microsoft.com/visualstudio/easily-navigate-code-delegates-while-debugging/

 

标签:Console,委托,导航,代码,Action,方法,调试
From: https://www.cnblogs.com/MeteorSeed/p/18277571

相关文章

  • 一款利用人工智能将自然语言查询转换为 SQL 代码的互译工具 - SQL Translator
    https://www.sqltranslate.app/ 一款利用人工智能将自然语言查询转换为SQL代码的互译工具-SQLTranslator 思维导航前言SQLTranslator介绍工具特性本地项目部署在线效果演示程序员常用的工具软件前言对于后端程序员来说,编写SQL代码是日常工作中不可或缺......
  • 基于springboot的环保网站管理系统,环保管理系统,附源码+数据库+论文,包远程安装调试
    1、项目介绍现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本环保网站就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达......
  • 代码随想录算法训练营第九天|232.用栈实现队列、225.用队列实现栈、 20.有效的括号、1
    文章目录232.用栈实现队列思路--直接模拟225.用队列实现栈解法一、两个队列模拟解法二、一个队列模拟20.有效的括号栈模拟1047.删除字符串中的所有相邻重复项解法一、栈解法二、双指针232.用栈实现队列题目链接:232.用栈实现队列-力扣(LeetCode)题目描述:请你仅......
  • Unity 导航路线生成,小地图同步映射, 经过以后地图与小地图删除点位(点击小地图控制导航
    效果:(如下图所示)操作方法:搭建小地图UI截取图片创建地面挂载如下代码:usingSystem.Collections.Generic;usingUnityEngine;usingUnityEngine.UI;[RequireComponent(typeof(MeshFilter),typeof(MeshCollider),typeof(MeshRenderer))]publicclassMap:Mo......
  • F407在RAM中调试
    在RAM中调试代码一.软硬件操作硬件方面需要先修改BOOT0和BOOT1的引脚的高低电平。SRAM运行模式BOOT0和BOOT1都是高电平。软件方面:1.需要先取消勾选UseMemoryLayoutfromTargetDialog,点击下方的Edit编辑.sct2.修改.sct分散加载文件原始文件LR_IROM10x080000000x0008......
  • Appium+python自动化(三十三)- 本地调试测试代码,远程控制测试环境-Remote(超详解)
    简介在前边所有涉及启动app的时候有这样一行代码driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps),很多小伙伴们和同学们不知道这个ip和端口哪里来的,我觉得有必要给小伙伴解释一下,于是宏哥决定写一篇关于这个appium的服务器ip文章!来给大家答答疑......
  • 代码随想录算法训练营Day9 | 字符串 151.翻转字符串单词 28.实现strStr() KMP算法介绍
    python中常用:        s[::-1]: 反转整个字符        s.strip():删除开头或结尾处的空白字符     s.split():字符拆分成单词 →list    “”.join(s):list→字符串   (持续更新…) 151.翻转字符串里的单词 题目: Leetcod......
  • 2024年全球最好的低代码开发平台有哪些
    什么是低代码开发平台?低码开发平台是一个应用程序,提供图形用户界面编程,从而以非常快的速度开发代码,减少了传统的编程工作。这些工具有助于快速开发代码,最大限度地减少手工编码的努力。这些平台不仅有助于编码,而且还能快速安装和部署。低码开发工具的好处由frevvo调研显......
  • leetcode 常见题型代码总结
    二分查找classSolution(object):defsearch(self,nums,target):""":typenums:List[int]:typetarget:int:rtype:int"""left,right=0,len(nums)-1whileleft<......
  • TypeScript一些特性让代码更优雅
    TypeScript不仅仅是JavaScript的类型超集,它还提供了一系列强大的高级特性,可以显著提高代码的质量和可维护性,掌握TypeScript的这些高级功能,不仅可以让你的代码更加健壮,还能大大提升你的开发效率。赶紧来看看吧!一、深入理解TypeScript的高级类型推断TypeScript的类型推断系......