小编Gus*_*rra的帖子

Type.GenericTypeArguments属性与Type.GetGenericArguments()方法

Type.GenericTypeArguments属性和Type.GetGenericArguments()方法有什么区别?他们总是回归同样的事情,还是有不同的情况?

c# reflection f#

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

适用于Windows Phone 7.1和F#3.0的FSharp.Core

F#2.0发行版有一个为WindowsPhone 7.1/Silverlight 4编译的FSharp.Core版本,但F#3.0没有编译,便携版本只支持Silverlight 5或Windows Phone 8.有人能够编译FSharp版本.针对Silverlight 4或Windows Phone 7.1的F#3.0核心源代码?需要什么定义?

编辑:

在fsharp编译器github repo上,有一个名为portable-net4 + sl4 + wp71 + win8的目标,但实际上是可移植类库Profile47,据说它只支持.NET 4.5,Silverlight 5.0和Windows Store应用程序.它与VS2012安装的相同.如果您尝试将其与WP 7.1项目一起使用,它将在运行时失败,抱怨缺少IStructuralEquatable.它应该真的命名为portable-net45 + sl5 + win8.proj文件中也有一个wp7目标,但它目前还没有编译

f# windows-phone-7 portable-class-library f#-3.0

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

Async.Start与Async.StartChild

假设asyncSendMsg没有返回任何内容,我想在另一个异步块内启动它,但不等待它完成,这是否有任何区别:

async {
    //(...async stuff...)
    for msg in msgs do 
        asyncSendMsg msg |> Async.Start
    //(...more async stuff...)
}
Run Code Online (Sandbox Code Playgroud)

async {
    //(...async stuff...)
    for msg in msgs do 
        let! child = asyncSendMsg msg |> Async.StartChild
        ()
    //(...more async stuff...)
}
Run Code Online (Sandbox Code Playgroud)

f# asynchronous

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

文本环绕在wp8应用程序栏中

在我的Windows Phone 8应用程序中,应用程序栏通常如下所示:

在此输入图像描述

但是对于我的用户之一某些原因与1020它看起来像这样:(这是一个NOKIA RM-877_nam_att_205 3.3.0.2 3051.40000.1346.0001与操作系统版本8.0.10517.0)

在此输入图像描述

(WP8模拟器看起来也像第二个)

任何人都知道为什么会这样,我该如何解决?

windows-phone-8

11
推荐指数
2
解决办法
1390
查看次数

当darg源位于我的应用程序之外时,如何覆盖默认的拖放游标

Drag&Drop中,如果我想自定义游标,我可以订阅GiveFeedback拖动源并设置e.UseDefaultCursors = false,并渲染我想要的内容.

但这只有在拖动源是我的应用程序时才有效.例如,如果我想在从资源管理器中拖动文件时也这样做,我无法订阅该事件,因为我只能访问放置目标而不能访问拖动源.

有没有其他方法来禁用内置游标和复制和链接标志,以便我可以在这种情况下渲染我自己的?

wpf drag-and-drop cursor

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

枚举上的F#类型约束

我正在尝试从字符串到Enum定义一个通用转换运算符,我想像这样使用它:

let day = asEnum<DayOfWeek>("Monday")
Run Code Online (Sandbox Code Playgroud)

但是这个实现:

let asEnum<'a, 'b when 'a: (new : unit -> 'a) and 'a : struct and 'a :> ValueType and 'a : enum<'b>> text = 
    match Enum.TryParse<'a>(text)  with
    | true, value -> Some value
    | false, _ -> None
Run Code Online (Sandbox Code Playgroud)

我只能这样使用它:

    let day = asEnum<DayOfWeek,_>("Monday")
Run Code Online (Sandbox Code Playgroud)

或这个:

    let day:DayOfWeek option = asEnum("Monday")
Run Code Online (Sandbox Code Playgroud)

如果我'a : enum<'b>从类型约束中完全省略了,我可以随心所欲地使用它,但是如果有人没有指定默认的类型int,我真的不喜欢它,我更喜欢它给出一个编译我指定约束时的时间错误

也许有任何技巧只需指定一个类型参数并让另一个参与?有任何想法吗?

enums f#

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

F#类型的私有修饰符

如果我们有

module M

type private A = B | C

(...)
Run Code Online (Sandbox Code Playgroud)

私有修饰符意味着A只能在模块M中使用.但在这种情况下:

namespace N

type private A = B | C

(...)
Run Code Online (Sandbox Code Playgroud)

这个私有修饰符会产生什么影响?CLR命名空间有私有成员是没有意义的,因为命名空间可以随意扩展,那么私有修饰符会有任何影响吗?

f#

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

对于monad的"对立面",是否有一个标准的monad?

也许monad允许链接一组所有可能失败的运算符(通过返回None),并且Some result如果每个子操作成功,或者None如果有任何失败,则返回结束.这是一个小例子:

type MaybeBuilder() =
    member this.Return(x) = 
        Some x
    member this.Bind(m, f) = 
        match m with
        | Some x -> f x
        | None -> None

let maybe = MaybeBuilder()

let list = [1;2;3;4]

// evaluates to Some 3
maybe {
    let! x1 = List.tryFind ((=) 1) list
    let! x2 = List.tryFind ((=) 2) list
    return x1 + x2
}

// evaluates to None 
maybe {
    let! x1 = List.tryFind ((=) 1) list
    let! x2 …
Run Code Online (Sandbox Code Playgroud)

monads f#

6
推荐指数
3
解决办法
382
查看次数

ServiceStack.Text 序列化字典

我使用 Json.Net 序列化字典类型的字典,当我向字典添加整数或布尔值时,反序列化时我会得到整数和布尔值。现在我试图将我的代码更改为使用 ServiceStack.Text,因为代码的其他部分存在日期序列化的问题,但现在我在反序列化后将布尔值和整数作为字符串。有没有办法与 Json.Net 具有相同的行为?

这是重现它的代码:https: //gist.github.com/1608951 Test_JsonNet 通过,但 Test_ServiceStack_Text_TypeSerializer 和 Test_ServiceStack_Text_JsonSerializer 都失败

servicestack

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

.fsproj文件中的AllowCrossTargeting

有什么影响

<AllowCrossTargeting>true</AllowCrossTargeting>
Run Code Online (Sandbox Code Playgroud)

在fsproj文件中?我找不到任何关于它的文档

f#

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