假设我有一个TypeScript枚举MyEnum,如下所示:
enum MyEnum {
First,
Second,
Third
}
Run Code Online (Sandbox Code Playgroud)
TypeScript 0.9.5中生成枚举值数组的最佳方法是什么?例:
var choices: MyEnum[]; // or Array<MyEnum>
choices = MyEnum.GetValues(); // plans for this?
choices = EnumEx.GetValues(MyEnum); // or, how to roll my own?
Run Code Online (Sandbox Code Playgroud) 刚刚安装了Visual Studio 11开发人员预览版.在编译指定了AnyCPU目标的托管(C#,VB)应用程序时,我在项目属性中看到一个名为"Prefer 32-bit"的新选项.这似乎不是类库的选项,只是顶级应用程序.
这个标志表示什么?
我真的很喜欢使用C#5.0异步编程.但是,有些地方更新旧代码以与TAP模型保持一致会给我带来问题.
这是其中之一 - 我不确定为什么Task<TResult>在TResult中没有协变,但是在尝试更新协变接口以从同步模式转换为异步模式时,它会给我带来问题:
旧代码:
public interface IInitializable<out T> // ** out generic modifier **
{
/// <summary>
/// Boolean to indicate if class is ready
/// </summary>
bool IsInitialized { get; }
/// <summary>
/// Calls for instance to be initialized using current parameters
/// Driver initialization can be done in the default constructor if desired
/// </summary>
T Initialize();
}
Run Code Online (Sandbox Code Playgroud)
新代码(不会编译):
public interface IAsyncInitializable<out T> // ** out generic modifier...broken **
{
/// <summary>
/// Boolean …Run Code Online (Sandbox Code Playgroud) 一些实现IEnumerable的自定义类型不一定具有后备集合.它们可以动态生成,例如使用'yield'或LINQ.这是一个例子:
public class SOJsonExample
{
public class MyCustomEnumerable : IEnumerable<KeyValuePair<int,float>>
{
public List<int> Keys { get; set; }
public List<float> Values { get; set; }
public MyCustomEnumerable()
{
Keys = new List<int> { 1, 2, 3 };
Values = new List<float> { 0.1f, 0.2f, 0.3f };
}
public IEnumerator<KeyValuePair<int, float>> GetEnumerator()
{
var kvps =
from key in Keys
from value in Values
select new KeyValuePair<int, float>(key, value);
return kvps.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return this.GetEnumerator();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我发现Json.NET的默认序列化是枚举每个值并将值存储在JavaScript数组中(我不想要).然后,默认的反序列化器将无法反序列化集合,因为它无法填充.在这些情况下,我想要Json.NET跳过默认的JavaScript数组序列化,只需存储类的成员. …
我有很多浮点图像的工作,会发现它非常有用有我的数组的基于图像的表示.我想创建一个用户控件WPF呈现所述数据阵列(如下所示)作为图像,而不是文本值的可滚动列表.
这可能吗?我已经看了看MDSN文档上的VS 2010的可扩展性,在SO的VS 2010扩展名列表,在这个话题上创建一个自定义编辑器,但我从哪里开始有点失落.

更新1:
感谢Brian和Basarat Ali在DebuggerVisualizer上的领导.看起来是正确的策略,除了不幸的是,不允许任何类型的数组的可视化器.
解决方法(有限的实用程序)是可视化包装器对象.
在Brian的建议下,我在CodePlex上发布了一个解决方案:
VS2010 Debugger Visualizers Contrib(http://debuggervisualizers.codeplex.com/).
该项目的源代码演示了一个工作包装器可视化器和一个用于1D double []阵列的非功能性"原始"数据可视化器.这是测试控制台运行的屏幕截图:

如果有人对如何解决这个问题有任何建议,请告诉我!
此外,欢迎任何解释为什么System.Array无法可视化!
更新2:
我只是用DebuggerVisualizer这个词重新搜索了SO,并发现这是先前要求的.看起来用户Will Dean建议使用WeakReference实现Project Mole的解决方案.但是,不要看看这在DebuggerVisualizer中是如何工作的.
更新3:
约什-史密斯的项目鼹鼠只是提出一个非常有益的工作,各地(感谢约什- !):
注意,您可以使用ArrayWrapper方法,而无需修改源代码以打开可视化工具.您可以在VS中的Watch窗口中输入:
new YourNamespace.ArrayWrapper(myArray);
按Enter键,然后您应该在该行代码旁边的Watch窗口中看到一个放大镜图标.单击它以打开自定义可视化工具.
我不确定要搜索什么关键字……迷失在谷歌的海洋中。
我在 ViewModel 中的可视元素(滑块)和数值之间指定了双向数据绑定。我想区分用户发起的值更改和基于 ViewModel 的值更改,以便我可以有选择地触发应用程序中其他位置的事件。如何在 XAML 文件的代码隐藏中执行此操作?
2015 年 2 月 26 日更新:在回复 Amit 的问题时,为什么我需要此功能是因为我实际上有多个可视元素设置为 2 向数据绑定到同一 ViewModel 源,因此不区分会导致无限循环(堆栈溢出)在对依赖代码的回调中,这些代码本身具有更新相同值的能力。
抛开 - 第一次在 SO 上适当地使用“堆栈溢出”时,难道不应该有声望点吗?
我目前正在重构代码,协调多个硬件组件进行数据采集,感觉有点像我正在重新创建轮子.特别是,类似 MVC的模式似乎正在出现.除此之外,这与GUI无关,我担心我会强迫这种特殊模式,而另一种可能更合适.这是我的情景:
各个硬件"组件"类遵循每种硬件类型的接口契约.以前,组件实例由单个整体InstrumentController类编排,该类严重依赖于配置+分支逻辑来执行特定的采集序列.在迭代之后,我为每个组件都有一个单独的控制器,这些控制器都由一个小型InstrumentControllerBase(或其衍生物)管理.复合系统将以编程方式或通过硬件间组件触发来接收"输入" - 在任何一种情况下,这些交互都被路由到适当的控制器并由其处理.
所以,我有一些感觉MVC式的东西,但我不知道是不是因为我强迫要点.由于在应用程序开发方面没有直接的MVC经验,我很难知道我是否只是想让我的场景适合MVC,其中另一种模式可能是一个很好的选择或免费.我的问题是,这些模式系列的搜索结果和维基文档似乎立即让我进入特定于GUI的讨论.
我理解"M代表模型数据而V代表视图" - 但你称之为超集模式是什么?组件的指挥官 - 控制器?
我可以从中挖掘示例示例吗?
是否可以调整 TypeScript 编译器以允许在经典破坏 JavaScript 代码的地方安全使用 Allman 风格的大括号?TypeScript 旨在生成惯用的 JavaScript,因此无论如何都会以 K&R 样式生成结果大括号。
举个例子:
// currently breaks in JS (and won't compile in TypeScript)
function getPerson() {
// compiler inserts semicolon after return, return executes prematurely
return
{
firstname: "Eric",
lastname: "Allman"
};
}
Run Code Online (Sandbox Code Playgroud)
PS我只是好奇;对与普遍接受的 JS 实践背道而驰是否是一个“好主意”的争论并不感兴趣。
我正试图弄清楚新的"_references.ts"工作流程,感觉我错过了使用/组合多个文件(没有外部模块)并仍然生成正确的"依赖顺序".js代码的东西.从Visual Studio 2013中的标准"greeter"模板示例开始,我:
这编译并运行良好.由于"所有.ts文件引用了项目中的所有其他文件"功能,从TypeScript 0.9.1开始,我从未必须从"app.ts"明确引用"greeter.ts".提前考虑一个大型项目,这将非常方便.
但是,这只是故事的一半(除非我遗漏了一些东西......也是JavaScript的新手,所以这很可能).如何在"_references.ts"中自动订购列表(例如自动生成)?在我看来Visual Studio(TypeScript编译器?)已经知道正确的排序.我希望将C#应用程序移植到数百个类中,手动订购这些应用程序将是一项艰巨的任务.是否有"计划"功能在1.0中执行此操作,还是应该查看第三方工具?我找到了咕噜声 ......我是在正确的轨道上吗?
javascript dependencies gruntjs typescript visual-studio-2013
背景:有关C++ AMP概述,请参阅Daniel Moth 最近的BUILD演讲.
只有在最后一次参考时他们才会打电话给array_view.synchronize().
在这些简单的例子中,是synchronize()不是需要呼叫?什么时候可以安全排除?我们能否相信parallel_for_each在没有它的情况下"同步"行为(w/r/t正在进行的代码)?
c# ×6
typescript ×3
c++ ×2
c++-amp ×2
wpf ×2
add-in ×1
adorner ×1
architecture ×1
async-await ×1
c#-5.0 ×1
covariance ×1
curly-braces ×1
data-binding ×1
dependencies ×1
enums ×1
gmcs ×1
gruntjs ×1
ienumerable ×1
indentation ×1
javascript ×1
json ×1
json.net ×1
mono ×1
mvvm ×1
vb.net ×1
xaml ×1