小编Aka*_*ash的帖子

GET或PUT表示REST请求

我有一种情况,客户端应用程序可以请求匹配特定条件的资源,如果匹配的资源不存在,则创建并缓存.对相同条件的后续请求将返回缓存的资源.

我可以通过PUT请求实现这一点来创建资源和后续的GET.但是,在我的特定场景中,要求客户端对我的系统的内部工作原理了解太多,即客户端不应该关心资源是否已经存在.

因此,如果客户端尚未存在,那么允许客户端发出创建资源的单个GET请求是否是ReSTful?

rest

3
推荐指数
1
解决办法
2159
查看次数

C#无法动态生成这个简单的事件处理程序

我正在尝试学习一些关于动态生成事件处理程序的知识,并且我很难尝试重新创建这种简单的情况:

public delegate void SomethingHappenedEventHandler(object sender, object args);
public event SomethingHappenedEventHandler SomethingHappened;

// This is the event handler that I want to create dynamically
public void DoSomething(object a, object b)
{
    DoSomethingElse(a, b);
}

public void DoSomethingElse(object a, object b)
{
    Console.WriteLine("Yay! " + a + " " + b);
}
Run Code Online (Sandbox Code Playgroud)

我用反射器为DoSomething方法生成IL,它给了我:

.method public hidebysig instance void DoSomething(object a, object b) cil managed
{
    .maxstack 8
    L_0000: ldarg.0 
    L_0001: ldarg.1 
    L_0002: ldarg.2 
    L_0003: call instance void MyNamespace::DoSomethingElse(object, object)
    L_0008: ret …
Run Code Online (Sandbox Code Playgroud)

c# il reflection.emit

3
推荐指数
1
解决办法
1617
查看次数

表示数学区间的类型

我经常看到带签名的函数,例如:

let f (lower: int) (upper: int) =
    //...
Run Code Online (Sandbox Code Playgroud)

其中lowerupper表示函数将要操作的某个范围的上限和下限.此类型签名缺少的是有关上限和下限是包含还是排除的信息.在美好的一天,信息将在文档中...

在我看来,使用类型表示数学区间会更好,因此API可以指定确切的间隔类型,如果调用者未能提供它,则会出现编译错误.我已经尝试过搜索这样的实现,但还没有想出任何东西,因此这个问题是看是否有人知道合适的实现.我想要一个可以从.NET语言中使用的语言,但是我可以借用其他想法的实现也很有用.

理想情况下,设计应允许下面显示的功能签名.{}包含标准区间表示法中的区间规范 - 这应该用相关类型替换:

let f1 (interval: { [,] }) = // inclusive lower and upper bounds
    //..

let f2 (interval: { (,) }) = // exclusive lower and upper bounds
    //..

let f3 (interval: { [,) }) = // inclusive lower and exclusive upper bounds
    //..

let f4 (interval: { [?,) }) = // infinite lower and exclusive upper bounds
    //..

let f5 …
Run Code Online (Sandbox Code Playgroud)

.net f# types intervals

3
推荐指数
1
解决办法
134
查看次数

Specflow忽略F#步骤组装中的步骤

我使用的是VS2010,SpecFlow 1.9.0,NUnit 2.6.2和ReSharper 7.1.我有一个从示例中获取的功能文件:

Feature: SpecFlowFeature1
    In order to avoid silly mistakes
    As a math idiot
    I want to be told the sum of two numbers

@mytag
Scenario: Add two numbers
    Given I have entered 50 into the calculator
    And I have entered 70 into the calculator
    When I press the add button
    Then the result should be 120 on the screen
Run Code Online (Sandbox Code Playgroud)

我已在单独的F#程序集中实现了步骤定义:

[<TechTalk.SpecFlow.Binding>]
module StepDefinitions

open TechTalk.SpecFlow
open NUnit.Framework

let [<Given>] ``I have entered (.*) into the calculator`` (a: …
Run Code Online (Sandbox Code Playgroud)

f# specflow

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

F#神秘约束错误消息

为了好玩,我一直在玩F#中的类型类,使用这里显示的想法.我创建了一个Next类型类来表示具有"后继"的值,例如下一个1 = 2,下一个今天=明天等:

type Next = Next with
    static member (++) (Next, x:int) = x + 1
    static member (++) (Next, x:DateTime) = x.AddDays 1.0
let inline next x = Next ++ x 

let v1 = next 1 // v1 = 2
let v2 = next DateTime.Now // v2 = Now + 1 day
Run Code Online (Sandbox Code Playgroud)

现在我想在泛型类中使用"nextable"类型:

type UsesNextable<'T>(nextable: 'T) = // Compile error 1
    member inline this.Next = 
        let v = next nextable         // Compile error 2
        v.ToString()
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误: …

f#

0
推荐指数
1
解决办法
221
查看次数

标签 统计

f# ×3

.net ×1

c# ×1

il ×1

intervals ×1

reflection.emit ×1

rest ×1

specflow ×1

types ×1