-->

Quartz.NET和F# - SYSTEMTIME和KeyMatcher(Quartz.NET

2019-10-22 16:48发布

我想在F#与Quartz.NET工作,遇到了与事实的几个问题,虽然Quartz.NET在F#中使用,似乎没有要在其上多文档,和我有一些困难与它之间有什么差异在C#中找到。

有一个问题我目前遇到的设置SYSTEMTIME如显示在此问题, 与SystemTime.UtcNow Quartz.net +测试 。

我可能是错的,但我认为,在F#代码应该是:

SystemTime.Now = fun () -> DateTime(someDate)
SystemTime.UtcNow = fun () -> DateTime(someDate)

但我得到任何的参数太多或功能使用不希望将错误。 如果我只是用DateTime构造,我得到有关它期待的功能的事实错误。

Answer 1:

=是相等比较运算。 如果你想要做的分配,使用<-赋值运算符。

除此之外,F#函数是不一样的Func<T> 通常情况下,当您使用它们的方法参数,转换自动发生,但在这种情况下,看来你需要明确地执行转换:

open System
open Quartz

SystemTime.Now <- 
    Func<DateTimeOffset>(
        fun () -> DateTimeOffset(DateTime(2015, 4, 18), TimeSpan.FromHours 2.))
SystemTime.UtcNow <- 
    Func<DateTimeOffset>(
        fun () -> DateTimeOffset(DateTime(2015, 4, 18), TimeSpan.FromHours 2.))

从F#调用起来也有点更复杂:

> SystemTime.Now.Invoke();;
val it : DateTimeOffset = 18.04.2015 00:00:00 +02:00
> SystemTime.UtcNow.Invoke();;
val it : DateTimeOffset = 18.04.2015 00:00:00 +02:00


文章来源: Quartz.NET and F# - SystemTime and KeyMatcher