小编Ben*_*jol的帖子

F#显式匹配vs函数语法

很抱歉这个模糊的标题,但这个问题的一部分是这两种语法样式的调用:

let foo1 x = 
    match x with
    | 1 -> "one"
    | _ -> "not one"

let foo2 = function 
    | 1 -> "one" 
    | _ -> "not one"
Run Code Online (Sandbox Code Playgroud)

另一部分是两者之间的区别,当我想要使用其中一个时?

syntax f#

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

SubscribeOn和ObserveOn之间有什么区别

我刚刚发现SubscribeOn,这让我想知道我是否应该使用它而不是ObserveOn.谷歌把我带到这里这里,但都没有帮助我找到差异:它似乎非常微妙.

(在我的上下文中,我在非gui线程上发生了'事件',我需要在使用事件数据更新控件之前切换到gui线程).

.net system.reactive

70
推荐指数
3
解决办法
2万
查看次数

方便的F#片段

关于F#/功能片段已经存在两个 问题.

然而,我在这里寻找的是有用的片段,可重复使用的小"帮助"功能.或者模糊但又漂亮的模式,你永远不会记得.

就像是:

open System.IO

let rec visitor dir filter= 
    seq { yield! Directory.GetFiles(dir, filter)
          for subdir in Directory.GetDirectories(dir) do 
              yield! visitor subdir filter} 
Run Code Online (Sandbox Code Playgroud)

我想把它作为一个方便的参考页面.因此,没有正确的答案,但希望有很多好的答案.

EDIT Tomas Petricek专门为F#片段创建了一个网站http://fssnip.net/.

f# reference code-snippets

66
推荐指数
15
解决办法
1万
查看次数

我无法杀死MyApp.vshost.exe

我已经设法让自己处于一个状态,我没有运行devenv的实例,但后台仍然是MyApp.vshost.exe(没有可见的窗口或控制台).

我已经尝试过TaskManager,ProcessExplorer和命令行(taskkill /F /IM MyApp.vshost.exe),没有人抱怨,命令行甚至说'PID 5824已停止',但它仍然存在.

我知道我可以重启,但我宁愿深究这一点.

它看起来不像是这个问题(http://support.microsoft.com/kb/982551),因为我可以重新启动没问题(事实上,因此无法提供任何进一步的诊断,抱歉).

编辑

这就是我进入这个泡菜的方式:

替代文字

vshost.exe

59
推荐指数
2
解决办法
3万
查看次数

C#中的度量单位 - 差不多

受到F#中的度量单位的启发,尽管断言(这里)你无法用C#做到这一点,但我还有一个想法,那就是我一直在玩的.

namespace UnitsOfMeasure
{
    public interface IUnit { }
    public static class Length
    {
        public interface ILength : IUnit { }
        public class m : ILength { }
        public class mm : ILength { }
        public class ft : ILength { }
    }
    public class Mass
    {
        public interface IMass : IUnit { }
        public class kg : IMass { }
        public class g : IMass { }
        public class lb : IMass { }
    } …
Run Code Online (Sandbox Code Playgroud)

c# f# units-of-measurement

57
推荐指数
5
解决办法
3万
查看次数

性能 - 使用Guid对象或Guid字符串作为Key

当使用a Guid作为a 的索引时Dictionary,使用该Guid对象或Guid的字符串表示更好吗?

我刚刚重构了一些使用字符串来使用该对象的代码,因为new Guid()遍布整个地方都有调用.但这让我想知道性能问题可能是什么.(这些集合相当小,但它们会被多次迭代.)

c# performance guid

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

git,msysgit,accents,utf-8,最终答案

我在某些地方读过git(或只是msysgit?)和字符编码有问题- 我相信这只是文件名中的一个问题.

我想要的是一些'权威'(或至少权威)的信息:

  1. 究竟是什么'问题'?(症状)
  2. 原因是什么?(简要)
  3. 在什么情况下这是一个节目塞子?
  4. 是否有任何解决方案,或没有任何解决方法?

我希望这个问题不是太模糊,我认为将所有这些信息放在一个地方以便能够指出人们是很好的...

git utf-8 msysgit

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

git,空白错误,压制和autocrlf,明确的答案

请你解释一下git中的空白错误,它们是什么意思,什么是'压抑',我需要担心吗?

(运行msysgit,但在linux上与其他用户一起运行).

autocrlf 在这里已经有一个'明确'的答案(设置为false git config --global core.autocrlf false )

git whitespace newline

44
推荐指数
3
解决办法
2万
查看次数

如何将typescript添加到现有的Asp.Net MVC项目中?

我喜欢打字稿背后的想法,但似乎无法弄清楚如何将它包含在ASP.Net MVC项目中.我已经安装了Visual Studio扩展,但我似乎无法找到有关如何添加*.ts编译成*.js文件的文件的示例或文档.

编辑:实际上,我应该复制Win8示例.jsproj包含和处理.ts文件的方式吗?或者这只适用于HTML/JS Win8项目?

asp.net-mvc typescript

43
推荐指数
3
解决办法
3万
查看次数

与lambdas一起使用的弱事件处理程序模型

好吧,所以这更像是一个答案而不是一个问题,但在提出这个问题之后,将Dustin Campbell,Egor的各个部分以及" IObservable/Rx/Reactive框架 "中的最后一个提示拉到一起,我想我为这个特殊问题制定了可行的解决方案.它可能会被IObservable/Rx/Reactive框架完全取代,但只有经验才会显示出来.

我故意创造了一个新问题,给我空间来解释我如何得到这个解决方案,因为它可能不会立即显而易见.

有很多相关的问题,大多数人告诉你,如果你想以后能够分离它们,你就不能使用内联lambda:

确实,如果希望以后能够分离它们,您需要保留对lambda的引用.但是,如果您只是希望事件处理程序在订阅者超出范围时自行分离,则此答案适合您.

.net c# events lambda memory-leaks

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