首页 > 编程语言 >如何在Visual Studio中调试.NET源码

如何在Visual Studio中调试.NET源码

时间:2024-03-12 14:46:12浏览次数:20  
标签:__ source Visual 源码 Studio NET 调试

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。

我一般的做法是先判断是否为null,再判断Count。

看了一下Count的源码如下:

1     [__DynamicallyInvokable]
2     public int Count
3     {
4         [__DynamicallyInvokable]
5         get
6         {
7             return _size;
8         }
9     }

 

Any()的源码如下:

 1     [__DynamicallyInvokable]
 2     public static bool Any<TSource>(this IEnumerable<TSource> source)
 3     {
 4         if (source == null)
 5         {
 6             throw Error.ArgumentNull("source");
 7         }
 8 
 9         using (IEnumerator<TSource> enumerator = source.GetEnumerator())
10         {
11             if (enumerator.MoveNext())
12             {
13                 return true;
14             }
15         }
16 
17         return false;
18     }

 

测试了一下,大量数据情况下,耗时几乎都是0ms,所以应该差别不大。

 

有时候如果我们想在Visual Studio中单步调试.NET的源码,可以按下面的方式操作

1、调试-》选项-》常规-》取消“仅我的代码”

 2、调试-》选项-》符号-》钩选Microsoft符号服务器

 

此时再调试时,就能单步调试.NET源码。

 

调试效果:

 

如果提示找不到某个符号,可以下载 https://github.com/dotnet/runtime.git  (仅.NET Core)仓库里的源码,找到对应的文件

标签:__,source,Visual,源码,Studio,NET,调试
From: https://www.cnblogs.com/zhaotianff/p/18068221

相关文章

  • RocketMQ为什么这么快?我从源码中扒出了10大原因!
    大家好,我是三友~~RocketMQ作为阿里开源的消息中间件,深受广大开发者的喜爱而这其中一个很重要原因就是,它处理消息和拉取消息的速度非常快那么,问题来了,RocketMQ为什么这么快呢?接下来,我将从以下10个方面来探讨一下RocketMQ这么快的背后原因如果你对RocketMQ还不了解,可以从公众......
  • RocketMQ为什么这么快?我从源码中扒出了10个原因!
    大家好,我是三友~~RocketMQ作为阿里开源的消息中间件,深受广大开发者的喜爱而这其中一个很重要原因就是,它处理消息和拉取消息的速度非常快那么,问题来了,RocketMQ为什么这么快呢?接下来,我将从以下10个方面来探讨一下RocketMQ这么快的背后原因如果你对RocketMQ还不了解,可以从公众......
  • drf源码剖析----解析器
    点击查看代码classHomeView(APIView):#规定传入的数据可以用JSON格式和Form格式parser_classes=[JSONParser,FormParser]#根据请求头选择解析器,寻找渲染器content_negotiation_class=DefaultContentNegotiationdefpost(self,request,*args,**kwar......
  • HashMap源码剖析
    HashMap源码剖析1.jdk1.7相关源码初始化初始化的时候,hashMap默认是空的,如果没有设置初始化容量,则使用默认的容量16.put()在put()的时候,如果hashMap是空的,则初始化HashMap(容量默认值为16),并设置下一次触发扩容的容量为16(当前容量)*0.75(负载系数)=12如果put的key是......
  • [learn]Set Up SAP Business Application Studio
    SetUpSAPBusinessApplicationStudiohttps://developers.sap.com/tutorials/set-up-bas.html按照教程,申请了https://account.hanatrial.ondemand.com/trial/#/home/trial的试用账号后,无法打开SAPBusinessApplicationStudio,按照上述课程设置SAPBusinessApplicationStud......
  • ChatGLM3 源码分析(四)
    ChatGLMForSequenceClassificationclassChatGLMForSequenceClassification(ChatGLMPreTrainedModel):def__init__(self,config:ChatGLMConfig,empty_init=True,device=None):super().__init__(config)#NLabels:分类或者回归的标签数......
  • Visual Studio Code 配置文件关联
    在编写Linux的.service文件的时候,我发现.service文件的本质是INI文件。然而VSCode却并没有使用INI格式进行语法高亮。于是我通过如下设置使VSCode在遇到.service文件时自动使用INI格式的语法高亮:打开设置,搜索:files.associations,并添加一个项目:ItemValue......
  • Kubernetes: kube-controller-manager 源码分析
    0.前言在Kubernetes架构中,controllermanager是一个永不休止的控制回路组件,其负责控制集群资源的状态。通过监控kube-apiserver的资源状态,比较当前资源状态和期望状态,如果不一致,更新kube-apiserver的资源状态以保持当前资源状态和期望状态一致。1.kube-controller-ma......
  • 找不到包 Microsoft.NETCore.App.Crossgen2.win-x64。源 Microsoft Visual Studio Off
    问题找不到包System.IO.Packaging,源MicrosoftVisualStudioOffilinePackages中不存在具有此ID的包 解决打开工具-Nuget相关可以尝试再命令行里用 nugetrestore但是这种情况应该是没有设置源。在选项里面,新建一个程序包源,填写以下源地址(或者其他nuget源)就能修复。......
  • error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft
       Defaultingtouserinstallationbecausenormalsite-packagesisnotwriteableCollectingPyQt5-sipUsingcachedPyQt5_sip-12.13.0.tar.gz(123kB)Installingbuilddependencies...doneGettingrequirementstobuildwheel...donePreparing......