由于这些IL代码我所看到的更多,我喜欢学习如何正确解释它们.
我找不到像C#Compiler或其他任何文档这样的文档,所以我想在学习了这些常见的文档之后我几乎可以完成其余的工作:
以下是一些包含我需要知道的IL代码示例:
样本1:
.method private hidebysig static void Main(string[] args) cil managed
{
.entrypoint
// Code size 15 (0xf)
.maxstack 1
.locals init ([0] class EnumReflection.DerivedClass derivedClass)
IL_0000: nop
IL_0001: newobj instance void EnumReflection.DerivedClass::.ctor()
IL_0006: stloc.0
IL_0007: ldloc.0
IL_0008: callvirt instance void EnumReflection.DerivedClass::WriteOutput()
IL_000d: nop
IL_000e: ret
} // end of method Program::Main
Run Code Online (Sandbox Code Playgroud)
样本2:
.method public hidebysig specialname rtspecialname
instance void .ctor() cil managed
{
// Code size 38 (0x26)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldstr "Hello"
IL_0006: stfld …Run Code Online (Sandbox Code Playgroud) 在Visual Studio 2010中,当您说新项时,您可以看到Asp.NET Handler和Generic Handler.你能告诉我有什么不同吗,我认为它带有.NET 4.0,因为我在Google上找不到相关的东西.
谢谢.
我读到GC(垃圾收集器)出于性能原因在Heap中移动数据,我不太明白为什么因为它是随机存取内存,可能是为了更好的顺序访问但是我想知道当这样的移动发生时Stack中的引用是否得到更新在堆里.但也许偏移地址保持不变,但垃圾收集器会移动其他部分数据,但我不确定.
我认为这个问题与实现细节有关,因为并非所有垃圾收集器都可以执行此类优化,或者他们可能会执行此操作但不更新引用(如果它是垃圾收集器实现中的常见做法).但我想得到一些特定于CLR(公共语言运行时)垃圾收集器的总体答案.
还有,我也读埃里克利珀的"参考文献都没有地址"的文章在这里,和下面的段落搞糊涂了一点:
如果您认为引用实际上是一个不透明的GC句柄,那么很明显,要找到与句柄关联的地址,您必须以某种方式"修复"该对象.您必须告诉GC"直到另行通知,具有此句柄的对象不得在内存中移动,因为有人可能有一个指向它的内部指针".(有多种方法可以做到这一点超出了这种熨平板的范围.)
听起来像参考类型,我们不希望移动数据.那么我们在堆中存储了什么,我们可以移动以进行性能优化?也许我们存储的类型信息?顺便说一下,如果你想知道那篇文章是关于什么的,那么Eric Lippert正在比较对指针的一点点,并尝试解释如何说引用只是地址,即使它是C#如何实现它也可能是错误的.
而且,如果我上面的任何假设是错误的,请纠正我.
我被问到这样的问题而且我有自己的说法,但我不确定该如何评价利弊和专业人士?微软向其中一位候选人提出这个问题.
单链表可以让你走向单向.而双向链表在下一个和前一个方向有两个方向.
这是一张描绘单一和双重链接列表的好照片.

但是,您如何以更有秩序的方式解释这些项目的利弊?
通常当我们使用Master/Content样式页面时,我们将css应用于Master页面,因此母版页的每个页面子项都可以使用该样式但我不希望这样,我希望我想直接将css应用于内容页面而不是母版页.我应该放在哪里
<link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />
Run Code Online (Sandbox Code Playgroud)
那个参考代码?
顺便提前谢谢.
我正在阅读OpenCart的源代码,我在下面遇到了这样的表达.有人可以向我解释一下:
$quote = $this->{'model_shipping_' . $result['code']}->getQuote($shipping_address);
Run Code Online (Sandbox Code Playgroud)
在声明中,有一个奇怪的代码部分,
$this->{'model_shipping_' . $result['code']}
它有{},我不知道那是什么?它看起来像我的对象,但我不是很确定.
我有一个数据库表(名为Topics),其中包括以下字段:
通过使用它们,我想在c#中填充TreeView.我怎样才能做到这一点 ?
提前致谢...
我只是想知道为什么我不能在Web服务中使用静态Web方法?为什么限制?
有些人可以给我简明扼要的解释.
我不确定这些突出显示的值是什么类型的标头,但我应该如何使用HttpWebRequest添加它们?

突出显示的部分是否被视为http请求或标题数据的主体?换句话说,哪种方式是正确的?
这是我目前使用的代码:
HttpWebRequest request = (HttpWebRequest) WebRequest.Create("/securecontrol/reset/passwordreset");
request.Headers.Add("Authorization", "Basic asdadsasdas8586");
request.ContentType = "application/x-www-form-urlencoded";
request.Host = "www.xxxxxxxxxx.com";
request.Method = "POST";
request.Proxy = null;
request.Headers.Add("&command=requestnewpassword");
request.Headers.Add("&application=netconnect");
Run Code Online (Sandbox Code Playgroud)
但是,我应该使用以下代码来构建上面的Http请求吗?
string reqString = "&command=requestnewpassword&application=netconnect";
byte[] requestData = Encoding.UTF8.GetBytes(reqString);
HttpWebRequest request = (HttpWebRequest) WebRequest.Create("/securecontrol/reset/passwordreset");
request.Headers.Add("Authorization", "Basic ashAHasd87asdHasdas");
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = requestData.Length;
request.Proxy = null;
request.Host = "www.xxxxxxxxxx.com";
request.Method = "POST";
using (Stream st = request.GetRequestStream())
st.Write(requestData, 0, requestData.Length);
Run Code Online (Sandbox Code Playgroud) asp.net ×4
c# ×4
.net ×3
asmx ×1
clr ×1
consolas ×1
css ×1
curly-braces ×1
database ×1
eclipse ×1
fonts ×1
handler ×1
heap ×1
http-headers ×1
il ×1
linked-list ×1
php ×1
treeview ×1
web-services ×1
webforms ×1