小编Bra*_*ins的帖子

如何强制我的F#应用程序以管理员身份运行?

对于F#应用程序,我尝试按照以下说明操作:

如何强制我的.NET应用程序以管理员身份运行?

唉,对于F#项目,Visual Studio没有与C#项目相同的命令和项目配置页面.我创建了一个一次性的C#项目,将其复制app.manifest到我的F#项目中,并<requestedExecutionLevel>根据上面的问题修改了它.尽管如此,.exe仍然没有管理员权限运行.

那么,我如何构建一个F#应用程序,以便它只以管理员身份运行?

f# visual-studio

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

Scala:Map.flatten的用例?

Map.flatten上文档说明如下:

将此可遍历集合的映射转换为由这些可遍历集合的元素组成的映射.

我得到了"可遍历集合的地图".例如,这将是一个列表地图.仅凭这个定义,a就有Map[Int, List[Int]]资格了.

但是什么是"这些可穿越集合的元素形成的地图"?这听起来很简单,但我很难让它发挥作用.

文档中提供的示例代码是......嗯......我们应该说,不适用吗?

val xs = List(
           Set(1, 2, 3),
           Set(1, 2, 3)
         ).flatten
// xs == List(1, 2, 3, 1, 2, 3)

val ys = Set(
           List(1, 2, 3),
           List(3, 2, 1)
         ).flatten
// ys == Set(1, 2, 3)
Run Code Online (Sandbox Code Playgroud)

我尝试了一些不同的东西,但它们会产生同样的错误.以下是几个例子:

scala> val m = Map(List(1) -> List(1,2,3), List(2) -> List(4,5,6), List(3) -> List(7,8,9))
m: scala.collection.immutable.Map[List[Int],List[Int]] = Map(List(1) -> List(1, 2, 3), List(2) -> List(4, 5, 6), List(3) -> List(7, 8, 9)) …
Run Code Online (Sandbox Code Playgroud)

dictionary scala flatten

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

F#:如何将Json.NET [JsonConstructor]属性应用于主构造函数?

我试图在F#中做一些事情,如Json.NET文档中JsonConstructorAttribute示例:

public class User
{
    public string UserName { get; private set; }
    public bool Enabled { get; private set; }

    public User()
    {
    }

    [JsonConstructor]
    public User(string userName, bool enabled)
    {
        UserName = userName;
        Enabled = enabled;
    }
}
Run Code Online (Sandbox Code Playgroud)

F#中的模拟类似于以下内容,但我在以下位置出现错误[<JsonConstructor>]:

[<JsonConstructor>] // ERROR! (see below)
type User (userName : string, enabled : bool) =
    member this.UserName = userName
    member this.Enabled = enabled
Run Code Online (Sandbox Code Playgroud)

错误是

此属性对此语言元素无效

那么,我如何用主要构造函数装饰[<JsonConstructor>]

f# json json.net

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

C#:编译器优化,函数调用和布尔表达式短路

我们假设我们有以下昂贵的功能:

bool ExpensiveOp1() { ... }
bool ExpensiveOp2() { ... }
bool ExpensiveOp3() { ... }
Run Code Online (Sandbox Code Playgroud)

另外,为了简单起见,假设它们都没有副作用.

我知道C#可以短路if ExpensiveOp1ExpensiveOp2返回false以下表达式:

return ExpensiveOp1() && ExpensiveOp2() && ExpensiveOp3();
Run Code Online (Sandbox Code Playgroud)

但是,如果我以这种方式编写代码,编译器是否足够智能(缺少更好的术语)内联函数调用并利用短路?

var x = ExpensiveOp1();
var y = ExpensiveOp2();
var z = ExpensiveOp3();
return x && y && z;
Run Code Online (Sandbox Code Playgroud)

c# optimization short-circuiting boolean-operations

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