小编dss*_*539的帖子

切换"抛出异常时中断".使用宏或键盘快捷方式

编辑:Visual Studio 2015的新异常窗口比旧对话框快得多,我不再关心使用它的键盘快捷方式.

是否有一个宏或键盘快捷方式,可以在不使用GUI的情况下切换"在抛出异常时中断"?

使用ctrl + alt + e打开对话框并检查"公共语言运行时异常""抛出"框然后单击"确定"很简单,但这是我做了很多事情.我宁愿有一个键盘快捷键.

这个问题是一个副本 任何有一个Visual Studio快捷方式/宏来切换处理/未处理的异常中断?

然而,海报接受的答案并没有真正的工作,我也很喜欢那个答案工作.

重复问题中的答案是不可接受的,因为它只切换一个特定的异常,而不是整个CLR组.

"好吧,然后写一个循环." 你说.但不是那么快!有人已经尝试过,而且它无用缓慢.(是的,我已经证实它在我的系统上也很慢.)

因此,挑战在于使用宏来在不到1秒或2秒的时间内切换整个CLR例外类别.这个问题是一个副本 任何有一个Visual Studio快捷方式/宏来切换处理/未处理的异常中断?

ide exception visual-studio visual-studio-macros

42
推荐指数
2
解决办法
5983
查看次数

接口+扩展(mixin)与基类

接口+扩展方法(mixin)是否优于抽象类?

如果你的答案是"它取决于",它依赖于什么?

我看到接口+扩展方法有两个可能的优点.

  • 接口是多重可继承的,而类则不是.
  • 您可以使用扩展方法以不间断的方式扩展接口.(实现您的界面的客户端将获得新的基本实现,但仍然可以覆盖它.)

我还没有想到这种方法的缺点.接口+扩展方法失败可能有一个明显的简单原因.

关于这个主题的两篇有用的文章是

.net extension-methods abstract-class interface

29
推荐指数
2
解决办法
3690
查看次数

什么是=>令牌?

=>标记是C#3.0 lambda语法的一部分.到目前为止,我找到这个令牌名称的努力都失败了.

syntax lambda c#-3.0

10
推荐指数
3
解决办法
1136
查看次数

适用于Visual Studio的JUnit Max等效工具

我一直在尝试找到类似于JUnit Max for Visual Studio 的工具.

优选地,该工具可以与Visual Studio 2008 Professional和NUnit一起使用.

对于那些显然无法点击进入JUnit Max站点的人,这里是描述.

JUnit Max是Eclipse的一个连续测试插件,它通过智能地运行测试并且不引人注意地报告结果,帮助程序员专注于编码.每次保存Java文件时,Max都会以与编译错误相同的格式运行测试并报告错误.

Max快速失败,运行最有可能首先失败的测试.在返回编码之前,您只需要密切关注测试结果(字面意思),即使您有一个长期运行的测试套件

试着这样想......

Visual Studio检测并突出显示语法错误.我想在IDE中突出显示单元测试错误,就像语法错误一样.

.net unit-testing visual-studio

10
推荐指数
2
解决办法
2411
查看次数

为什么IEnumerable <uint>没有Sum()扩展名

似乎没有为IEnumerable<uint>(以及其他无符号整数)定义Sum

var s = new int[] { 1, 2, 3 };
s.Sum(); //works fine

var us = new uint[] { 1, 2, 3 };
us.Sum(); //missing method
Run Code Online (Sandbox Code Playgroud)

我想知道:

  • 我做过一些根本错误/误解了这种情况吗?
  • 哪些设计决策可能导致遗漏IEnumerable<uint>.Sum()

MSDN:Enumerable.Sum

.net

10
推荐指数
2
解决办法
1030
查看次数

LinqToSql - 并行 - DataContext和Parallel

在.NET 4和多核环境中,如果我们使用DataLoadOptions.LoadWith,linq to sql datacontext对象是否会利用新的并行?

编辑

我知道linq to sql没有并行化普通查询.我想知道的是,当我们指定DataLoadOption.LoadWith时,它是否使用并行化来执行每个实体及其子实体之间的匹配?

例:

using(MyDataContext context = new MyDataContext())
{
     DataLaodOptions options =new DataLoadOptions();
     options.LoadWith<Product>(p=>p.Category);
     return this.DataContext.Products.Where(p=>p.SomeCondition);
}
Run Code Online (Sandbox Code Playgroud)

生成以下sql:

Select Id,Name from Categories
Select Id,Name, CategoryId from Products where p.SomeCondition
Run Code Online (Sandbox Code Playgroud)

当所有产品都被创建时,我们会有一个

categories.ToArray();
Parallel.Foreach(products, p =>
{
    p.Category == categories.FirstOrDefault(c => c.Id == p.CategoryId);
});
Run Code Online (Sandbox Code Playgroud)

要么

categories.ToArray();
foreach(Product product in products)
{
    product.Category = categories.FirstOrDefault(c => c.Id == product.CategoryId);
}
Run Code Online (Sandbox Code Playgroud)

parallel-processing datacontext .net-4.0 linq-to-sql

7
推荐指数
1
解决办法
4140
查看次数

从另一个应用程序获取Button句柄

我有一个程序需要将BM_CLICK消息发送到另一个应用程序按钮.我可以获得父窗口句柄,但是当我尝试获取按钮句柄时,如果总是返回0

我从Spy ++获得了按钮标题名称和按钮类型,这似乎是对的,但我知道我一定有错.下面是我的代码

 public const Int BM_CLICK = 0x00F5;

 [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
        private static extern IntPtr SendMessage(IntPtr hwnd, uint Msg, IntPtr wParam, IntPtr lParam);

        [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
        static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);



private void button1_Click(object sender, EventArgs e)
{
    Process[] processes = Process.GetProcessesByName("QSXer");

    foreach (Process p in processes)
    {
        ////the Button's Caption is "Send" and it is a "Button".  
        IntPtr ButtonHandle = FindWindowEx(p.MainWindowHandle, IntPtr.Zero, "Button", "Send"); …
Run Code Online (Sandbox Code Playgroud)

c# winapi sendmessage

7
推荐指数
1
解决办法
2万
查看次数

固定一个空数组

在C++/CLI中,是否可以固定不包含元素的数组?

例如

array<System::Byte>^ bytes = gcnew array<System::Byte>(0);
pin_ptr<System::Byte> pin = &bytes[0]; //<-- IndexOutOfRangeException occurs here
Run Code Online (Sandbox Code Playgroud)

MSDN给出的建议不包括空数组的情况. http://msdn.microsoft.com/en-us/library/18132394%28v=VS.100%29.aspx

顺便说一句,你可能想知道为什么我想要一个空数组.简短的回答是,为了简化代码,我想对空数组和非空数组进行相同处理.

interop c++-cli

7
推荐指数
1
解决办法
1102
查看次数

NTLM身份验证和智能卡

我在企业互联网代理后面的VMWare VPC中运行程序(Mathematica).安装在该VPC中的各种程序,如IE,Chrome,Excel,Word,Acrobat Reader,甚至MS Paint都可以毫无问题地从Internet获取数据,但Mathematica似乎没有正确处理代理.

我的猜测是它无法处理代理的NTLM身份验证.

在早期的情况下,在不同的防火墙后面,我在CNTLM作为Mathematica和代理之间的中间件取得了一些成功.CNTLM与代理进行对话并负责NTLM认证,并且Mathematica给出了CNTLM监听的端口和ip地址(localhost),以便进行通信.但是,在之前的案例中,我知道要用于代理的凭据(即我自己的).

在当前情况下,我的登录使用智能卡和PIN进行.VPC透明地传递凭证(我不必输入它们),显然我上面提到的所有程序都自动了解它们.这让我觉得Mathematica或CNTLM也应该能够做到这一点.但是,我用作密码的PIN不起作用(事实上,如果我经常尝试,我会被锁定).我假设使用的凭据实际上不是我自己的,但要么是Windows密码(我没有智能卡用户),要么来自我的PIN和智能卡.

我的问题是:如何使这个设置工作?这可能涉及CNTLM,但也欢迎其他解决方案.

authentication proxy ntlm

7
推荐指数
1
解决办法
1273
查看次数

Objective-C到C#的yield关键字是否有任何并行

我第一次yield在C#中看到这个关键字时,我觉得"糟糕的是如何破解语言".从那时起成长并实际使用该语言我发现表达状态逻辑非常简单,我想在其他开发平台中使用类似的方法.

我正在探索一些支持实用程序的Objective-C.是否有类似Objective-C的C#yield关键字?

.net c# iterator yield objective-c

6
推荐指数
1
解决办法
1651
查看次数

通过反射创建委托

给定一个包含的程序集

namespace Foo{public class Bar;}
Run Code Online (Sandbox Code Playgroud)

如何Action<Foo.Bar>在编译时不引用第一个程序集而从另一个程序集创建?

c# reflection delegates .net-3.5

6
推荐指数
1
解决办法
3281
查看次数