C#lambda表达式可以包含多个语句吗?
(编辑:正如以下几个答案中所提到的,这个问题最初是关于"行"而不是"陈述".)
我在C#可执行文件上做了Ngen.这是成功的,但我无法弄清楚生成的文件在我的PC中的位置.MSDN说它应该在原生图像缓存中,仍然无法弄清楚它在哪里.
编辑:我想对它运行objdump,因此我需要物理文件
EDIT2:我运行ngen的输出是:
C:\Documents and Settings\nmea\My Documents\Visual Studio 2008\Projects\Consol
eApplication4\ConsoleApplication4\bin\Release>ngen install ConsoleApplication4.e
xe
Microsoft (R) CLR Native Image Generator - Version 2.0.50727.3053
Copyright (c) Microsoft Corporation. All rights reserved.
Installing assembly C:\Documents and Settings\nmea\My Documents\Visual Studio
2008\Projects\ConsoleApplication4\ConsoleApplication4\bin\Release\ConsoleApplica
tion4.exe
Compiling assembly C:\Documents and Settings\nmea\My Documents\Visual Stud
io 2008\Projects\ConsoleApplication4\ConsoleApplication4\bin\Release\ConsoleAppl
ication4.exe (CLR v2.0.50727) ...
ConsoleApplication4, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
Run Code Online (Sandbox Code Playgroud) 我试图通过对ILDASM进行往返,然后在C#可执行文件上进行ILASM来重新生成exe.据我所知,ILDASM生成的.il文件足以生成.exe文件.
我很好奇为什么.NET框架被设计为使用exe文件进行部署而不是将.il文件部署到用户.c#编译器无法生成.il文件,JIT编译器直接使用.il文件作为输入吗?是因为操作系统需要.exe扩展来调用加载器,还是因为文件大小或性能方面的考虑?
PS:这个问题没有实际意义.我问这个问题让我的概念更加清晰,因为我确信我缺乏很多.
有人可以告诉我们2种优化技术是相同还是不同?
此外,程序员或编译器是否有责任这样做?
我想在Windows XP中的可执行文件上运行objdump,并希望观察细节.但是,我无法找到在文本文件中输出结果的选项 - 因为控制台中的输出显示被切断(我也尝试使用选项-o或/ out来指定ooutfilename,但似乎不存在)
据我所知,一旦我实现了类的析构函数,c#中的垃圾收集器就会将类的所有对象放入终结队列中.当我阅读GC.Suppresfinalize的文档时,它提到对象头已经设置了一个用于调用finalize的位.
我想知道为什么GC的实现者必须将所有对象放入队列中,并将内存释放延迟1-2个周期.他们不能只是在释放内存时查看位标志,然后调用对象的finalize然后释放内存?
毫无疑问,我是一个白痴,我无法理解GC的工作.我提出这个问题只是为了增进我的理解或填补我所知的缺失空白
编辑:如果位标志用于suppressfinalize,GC实现者可能为此目的在对象头中添加了另一个标志,不是吗?
我已经在几个地方阅读了它,可以更快地搜索树,但无法理解.据我了解:红黑树的最大高度= 2*log(N + 1)AVL树的高度= 1.44*标识(N + 1)
是因为AVL更短吗?
据说当使用uri http://schemas.microsoft.com/winfx/2006/xaml/presentation指定xmlns时,它会从presentationframework dll引入类的定义或声音.
我很好奇,完成的映射在哪里?(这个问题没有实际意义,我只是好奇并试图理解wpf)
在c ++中导出为protected或private有什么区别?我无法弄清楚,因为两者似乎都限制了派生类对象的基类成员访问
据说虚拟功能无法内联.如果一个函数被声明为虚拟,它不能在代码中的任何地方内联,或者仅在某些情况下是否适用?(例如,从基指针调用方法与引用上的调用方法等)