我想在Typescript对象中存储string - > string的映射,并强制所有键映射到字符串.例如:
var stuff = {};
stuff["a"] = "foo"; // okay
stuff["b"] = "bar"; // okay
stuff["c"] = false; // ERROR! bool != string
Run Code Online (Sandbox Code Playgroud)
有没有办法让我强制执行值必须是字符串(或任何类型..)?
有人知道GraphViz能够生成的方向流图的纯粹,基于Javascript的实现吗?我对漂亮的视觉效果输出不感兴趣,但计算出每个节点的最大深度,以及优化贝塞尔线的布局,以便在处理图形而不是树时最小化相交边的数量信息.我想在浏览器中运行此代码; 我知道我可以轻松地将Graphviz作为扩展名嵌入到我的节点服务器中,甚至popen()可以将.dot格式化的图形信息流式传输.
作为参考,这是典型的GraphViz输出.注意元素如何堆叠和间隔开以允许连接线在节点之间传播,而不交叉(经常)或穿过节点.

我找不到Panel.IstItemsHost附加属性的任何好文档.我看到很多人在ItemsControl的ItemsContainer模板上设置它的例子,但在MSDN上的un-documentation并没有解释为什么或设置属性赋予什么优势.我已经构建了大量不设置此属性的容器,但尚未注意到任何不良影响.
我正在寻找一个在编译时进行类型检查的Lua前端编译器,但输出标准的Lua 5.1字节代码(只有运行时类型).我想要的是一定量的静态,编译时语法分析和可选类型,以便比运行时更快地检测到琐碎的错误.生成的字节代码必须与使用标准LoadString()编译的现有Lua字节代码很好地配合.
要清楚 - 任何差异只会发生在字节编译时.在运行时,字节代码不知道在编译阶段发生了任何不同/异常的事情.
我的想法听起来很像ActionScript; 我甚至不介意输出Lua字节代码的ActionScript编译器!
有没有人听说过这样的努力?我已经看到了一些使用MetaLua来做这件事的引用,但老实说,我不够聪明,无法做出文档的尾巴.
鉴于像F#这样的语言的基本语法和语义已经设计为准确提供LINQ为C#/ VB提供的添加内容,为什么在F#编程时我应该使用LINQ?我获得了什么,我可能会失去什么?
.NET CLR运行时是否知道如何在运行时优化/内联简单属性getter?例如:
property int Length { get; set; }
Run Code Online (Sandbox Code Playgroud)
一旦在运行时进行JIT,它会执行"Length__get"函数(为它构建堆栈,跳转执行代码等)吗?或者抖动是否聪明,并且知道这可以被重写为类字段访问?
请原谅我有点天真,但似乎System.Windows.Controls.DataVisualization.Charting已经从VS2010消失了,并且混合4.我试图制作一个覆盖了线条的条形图,但是甚至不能开始,因为我找不到合适的控件.
我知道我可以使用外部图形包,但我想首先尝试内置控件.
在调试/单步执行Visual Studio时,是否有任何众所周知的工具或插件可用于获取有关HWND的属性?我知道我可以使用Spy ++来做这些事情,但是这样做也很麻烦,同时也踩着调试器.我喜欢做的是将HWND放入Watch子窗口,看看如下内容:
这对我来说似乎是非常基本的东西,对任何人都有用.这样的插件存在吗?我可以通过使用Autoexp.dat玩游戏来实现这一目标吗?
来自 MSDN 文档:
该
BeginPaint函数验证整个客户区。
ValidateRect如果在生成下一个 WM_PAINT 消息之前必须验证更新区域的一部分,则不应调用该函数。1
我多年来一直使用 Win32 API 进行编程,但我从未想过要调用该ValidateRect函数。今天我的一位同事指出,我们错过了对 的调用ValidateRect,该调用修复了我们使用 GDI 进行一些高速动画时遇到的错误(我知道,这是一个矛盾的说法)
有人可以告诉我在/对之后是否ValidateRect需要调用 to 吗?我在 MSDN 上没有看到任何文档可以阐明这一点,而且我看到的文档和示例表明没有必要进行调用。BeginPaintEndPaintValidateRect
使用性感语法执行以下操作的正确C#语法是什么?
string[] arr = ///....
List<string> lst = new List<string>();
foreach (var i in arr) {
lst.Add(i);
}
Run Code Online (Sandbox Code Playgroud)
我觉得这可能是一个使用类似的东西:arr.Select(x => lst.Add(x));
但我还不够聪明,无法弄清楚正确的语法.
我正在尝试使用WPF 3.5sp1 来映射Ctrl+ Shift+ 0,但绑定不会触发.我正在使用的XAML是:
<KeyBinding Gesture="Ctrl+Shift+D0" Command="Blah"/>
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
<KeyBinding Key="D0" Modifiers="Ctrl+Shift" Command="Blah" />
Run Code Online (Sandbox Code Playgroud)
还有许多其他组合,但都不起作用.手势="Ctrl + D0"效果很好,或"Ctrl + Shift + OemPlus"等,所以我认为我的语法不是问题.我查看了Key enum,并试图看看"Shift-D0"是否重新映射到类似"OemParen"的东西,但没有任何东西向我跳出来.
我甚至在我的Window上放了一个PreviewKeyDown处理程序,我从来没有看到KeyEvent Key == D0和Keyboard.ModifierKeys == Shift+ Ctrl!事实上,当我按住Ctrl+ 时,D0 keydown永远不会到达Shift.
public MainWindow()
{
InitializeComponent();
this.PreviewKeyDown += MainWindow_PreviewKeyDown;
}
void MainWindow_PreviewKeyDown(object sender, KeyEventArgs e)
{
if ((Keyboard.Modifiers & ModifierKeys.Shift) != 0)
{
Trace.WriteLine("shift is down!");
}
Trace.WriteLine(string.Format("key: {0}, system key: {1}, modifiers {2}", e.Key, e.SystemKey, e.KeyStates));
}
Run Code Online (Sandbox Code Playgroud) winapi ×3
wpf ×3
.net ×2
linq ×2
.net-4.0 ×1
api ×1
c# ×1
c#-4.0 ×1
charts ×1
clr ×1
debugging ×1
dictionary ×1
f# ×1
graphviz ×1
hwnd ×1
itemscontrol ×1
javascript ×1
key-bindings ×1
lua ×1
typescript ×1
wiktionary ×1
windows-7 ×1