下面是一个简单的测试夹具.它在Debug版本中成功,在Release版本中失败(VS2010,.NET4解决方案,x64):
[TestFixture]
public sealed class Test
{
[Test]
public void TestChecker()
{
var checker = new Checker();
Assert.That(checker.IsDateTime(DateTime.Now), Is.True);
}
}
public class Checker
{
public bool IsDateTime(object o)
{
return o is DateTime;
}
}
Run Code Online (Sandbox Code Playgroud)
似乎代码优化会造成一些破坏; 如果我在Release版本上禁用它,它也可以.这让我感到很困惑.下面,我使用ILDASM来反汇编构建的两个版本:
调试IL:
.method public hidebysig instance bool IsDateTime(object o) cil managed
{
// Code size 15 (0xf)
.maxstack 2
.locals init (bool V_0)
IL_0000: nop
IL_0001: ldarg.1
IL_0002: isinst [mscorlib]System.DateTime
IL_0007: ldnull
IL_0008: cgt.un
IL_000a: stloc.0
IL_000b: br.s IL_000d
IL_000d: ldloc.0
IL_000e: ret …Run Code Online (Sandbox Code Playgroud) 在Clojure中,在包含从Java序列化的浮点值的文件中获取延迟序列会是什么?(我已经玩弄了一种with-open基于行读取示例的方法,但似乎无法连接点以将流作为浮点数处理.)
谢谢.
我正在编写一些C#代码,递归地遍历基本程序集的引用程序集,构建这些引用的有向非循环图以进行拓扑排序.我是通过Assembly类上的GetReferencedAssemblies()方法完成的.
在测试代码时,我发现 - 令我惊讶的是 - .NET框架中的某些程序集显然将自己列为程序集引用.一个这样的例子是System.Transactions,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089,它列出了System.Transactions,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089作为参考,可以在Reflector中验证.
一旦我意识到这一点,通过比较AssemblyNames打破无限递归是微不足道的,但我很好奇这种情况,因为我自己无法生成自递归程序集.(我可以谷歌没有关于此的信息,并添加自己作为参考不会使得到的程序集自我递归.)
简而言之:自我递归汇编引用真的是"犹太教" - 一些系统程序集引用自身的理由是什么?
谢谢.
.net reflection assemblies circular-dependency circular-reference
我想做的事情如下:
this.reportViewer.LocalReport.DataSources.Clear();
DataTable dt = new DataTable();
dt = this.inputValuesTableAdapter.GetData();
Microsoft.Reporting.WinForms.ReportDataSource rprtDTSource = new Microsoft.Reporting.WinForms.ReportDataSource();
rprtDTSource = dt; // this line generates exception
//this.reportViewer.LocalReport.DataSources.Add(rprtDTSource);
this.reportViewer.RefreshReport();
Run Code Online (Sandbox Code Playgroud)
如何将数据表加载为ReportDataSource?
当前代码生成: "无法将类型'System.Data.DataTable'隐式转换为'Microsoft.Reporting.WinForms.ReportDataSource'"
我遇到一种情况,我想将初始化nils为的数组分成空段和包含连续数字的段。
我发现的高阶chunk函数Array为此提供了一个优雅的解决方案:
<< [nil,nil,1,2,nil,3].chunk { |e| !e.nil? }.each { |e| p e }
>> [false, [nil, nil]]
>> [true, [1, 2]]
>> [false, [nil]]
>> [true, [3]]
Run Code Online (Sandbox Code Playgroud)
但是,假设我希望输出也将起始索引包括在每个块中的原始数组中,即将上面的输出增加到类似以下内容:
>> [false, 0, [nil, nil]]
>> [true, 2, [1, 2]]
>> [false, 4, [nil]]
>> [true, 5, [3]]
Run Code Online (Sandbox Code Playgroud)
是否有一种解决方案,可以保留上述片段的表现力?
提前致谢。
c# ×2
.net ×1
arrays ×1
assemblies ×1
chunking ×1
clojure ×1
il ×1
io ×1
optimization ×1
reflection ×1
reporting ×1
reportviewer ×1
ruby ×1