使用Mono 2.11.3(SGen)以及稳定的2.10.8版本,使用WeakReference的测试代码失败了.在像这样的简单代码中
object obj = new object();
WeakReference wr = new WeakReference(obj);
Assert.IsTrue(wr.IsAlive);
obj = null;
GC.Collect();
Assert.IsFalse(wr.IsAlive);
Run Code Online (Sandbox Code Playgroud)
第二个断言将失败.添加GC.WaitForPendingFinalizers没有帮助.这是Mono或我头脑中的错误吗?谢谢
文章http://blogs.msdn.com/b/dotnet/archive/2009/08/25/the-good-and-the-bad-of-exception-filters.aspx表明F#本身支持异常过滤器(例如,在C#中没有语法.异常过滤器在适当的catch块之前运行,如果它们返回true,则catch块将执行.我想F#会用这样的东西做这个
with
| ex when filter(ex) -> printfn "Caught"
Run Code Online (Sandbox Code Playgroud)
但是,对我来说,它编译为通常的"catch [mscorlib] System.Object",调用catch块中的过滤器函数,并且生成的MSIL中不存在"过滤器"部分.所以问题是,F#真的支持这种结构吗?
谢谢
假设我在DB中有一个字段,可能的值为'Y','N',NULL.我想在我的DTO中使用布尔属性('N',NULL - > false,'Y' - > true)来表示它.在查询/更新/插入期间,我可以以某种方式插入OrmLite来自行进行转换(两个方向,ofc)吗?谢谢