如何在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)仓库里的源码,找到对应的文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值