我从Git Repository下载了一些代码模块(.cls文件).当我将(部分,而不是全部)导入VBE(文件:导入)时,它将其作为"标准"模块导入(就像它是.bas文件一样).
如果我在Notepad ++中打开cls文件,将整个内容复制到一个新文件并保存为"a.cls"然后我可以导入它并正确解释为一个新类.
我完全困惑并且需要经过许多代码模块,我不想手动重新保存每个模块.
有没有人有任何想法?
我在Windows 10上导入到Excel 2016(64位).我不知道创建文件的Excel版本.
文件位于:https://github.com/ckuhn203/VBEX/tree/master/src
例如:Monadic.cls作为标准模块文件导入.
我对F#很新,所以请保持温柔.我试图用函数式编写代码来查看过去5天内修改过的所有文件的目录(和子目录),然后对这些文件执行某些操作(此时只是将名称写入控制台) .
我的代码是:
open System.IO
let rec getAllFiles dir pattern =
seq { yield! Directory.EnumerateFiles(dir, pattern)
for d in Directory.EnumerateDirectories(dir) do
yield! getAllFiles d pattern }
let printMe x = printfn "%A" x
let hasChangedRecently fileName =
let myFile = System.IO.FileInfo(fileName)
let f myFile = function
| myFile when myFile.LastWriteTime >= System.DateTime.Parse "10-04-2015" -> printMe MyFile.Name
| _ -> ()
f fileName
[<EntryPoint>]
let main argv =
getAllFiles @"c:\temp" "*.xml"
|> Seq.iter hasChangedRecently
System.Console.ReadKey() |> ignore
0 // return an …Run Code Online (Sandbox Code Playgroud) 如果我有:
type a = B | C
Run Code Online (Sandbox Code Playgroud)
如何编写静态成员 ToJson 和 FromJson?
我知道如何为记录类型编写它(如Chiron: JSON + Ducks + Monads的示例所示 ),但我找不到 DU 的任何示例。
编辑
在 s952163 有用的答案(以及后续评论)之后,我调整了代码以尝试使用选择 A | 的“简单”DU。B(而不是字符串的 A | ... 的 B)。我的代码现在是:
type SimpleDU =
| A
| B
static member ToJson (t : SimpleDU) =
match t with
| A -> Json.writeNone "a"
| B -> Json.writeNone "b"
static member FromJson (_ : SimpleDU) =
json {
let! duA = Json.tryRead "a"
match duA with
| Some s …Run Code Online (Sandbox Code Playgroud)