小编Mik*_*her的帖子

Roslyn编译器优化了函数调用乘法与零

昨天我在C#代码中发现了这种奇怪的行为:

Stack<long> s = new Stack<long>();

s.Push(1);           // stack contains [1]
s.Push(2);           // stack contains [1|2]
s.Push(3);           // stack contains [1|2|3]

s.Push(s.Pop() * 0); // stack should contain [1|2|0]

Console.WriteLine(string.Join("|", s.Reverse()));
Run Code Online (Sandbox Code Playgroud)

我假设程序会打印,1|2|0但实际上是打印的1|2|3|0.

查看生成的IL代码(通过ILSpy),您可以看到它s.Pop() * 0被优化为0:

// ...
IL_0022: ldloc.0
IL_0023: ldc.i4.0
IL_0024: conv.i8
IL_0025: callvirt instance void class   [System]System.Collections.Generic.Stack`1<int64>::Push(!0)
// ...
Run Code Online (Sandbox Code Playgroud)

ILSpy反编译:

Stack<long> s = new Stack<long>();
s.Push(1L);
s.Push(2L);
s.Push(3L);
s.Push(0L); // <- the offending line
Console.WriteLine(string.Join<long>("|", s.Reverse<long>()));
Run Code Online (Sandbox Code Playgroud)

首先,我在Windows 7下使用Visual Studio …

c# optimization roslyn visual-studio-2015

21
推荐指数
1
解决办法
590
查看次数

使用Alt键选择Intellij IDEA列

在Intellij中IDEA是否有一种方法可以通过按住来启用列选择模式Alt,就像在其他IDE中一样(例如Visual Studio或Notepad ++)?

目前,当按下AltIntelliJ时使用多媒体功能,这总是导致我在某个我不想要的地方有一个附加光标.

示例图像multicursor

鼠标中键(按住并拖动)完全符合我的要求,我只是希望将其重新映射到Alt键

ide editor intellij-idea

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

防止 WPF 中的 Alt 键聚焦主菜单

如果我Alt在 WPF 应用程序中按下带有<Menu>元素的键,则第一个菜单条目将获得焦点。我怎样才能防止这种行为。

我的问题是我的窗口中有一个带有多选功能的Scintilla.Net组件,当我尝试选择一个矩形选择(通过按住 Alt 键)时,只要我松开 Alt 键,我的组件就会失去焦点。

是一个类似的问题,但不幸的是它是关于 Windows 窗体而不是 WPF

c# wpf keyboard-shortcuts

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