C#4.0捷径教程笔记(2)

c# 发表评论
  C#和CLR CLR中的JIT编译器 将C#编译成中间语言,由CLR执行,而CLR并非像JavaScript那样的解释执行的,首次运行程序的时候CLR调用JIT编译器将中间语言代码编译为机器码,这样的好处是,相比于基于通用优化法则的编译器,实时编译能够实现更加细粒度的优化,提供基于当前宿主的机器的优化,并且托管代码相比于机器码往往占用空间更少,代码更加优化。虽然JIT编译阶段增加了复杂度,使得初次运行的时候…

C# 2.0泛型编程基础实例

泛型的基本概念。   最显著的一点就是它参数化了类型,把类型作为参数抽象出来,从而使我们在实际的运用当中能够更好的实现代码的重复利用,同时它提供了更强的类型安全,更高的效率,不过在约束方面,它只支持显示的约束,这样在灵活性方面就显得不是那么好了。我觉得它之所以能够提供更高的效率是因为泛型在实例化的时候采用了 "on-demand"的模式,即按需实例化,发生在JIT(Just In Time)编译时。 …

深入理解com+和mts,dcom,msmq,remoting

开发人员经常要我讲一些关于微软在今后对于以下几个方面的策略:com+、微软事务服务(mts)以及它的jit引擎和对象缓冲(object pooling)、 微软消息队列(msmq)和dcom。还有网站、应用服务器、asp和组件整合之间的关系到底是什么?既然每个人都嚷着要答案,那么就让我们一次解决掉所有这些问题。首先,我来讲解一下有关com+和mts的问题。使用com+和mtscom+一直以来都很流行,所以如果需要用到com+…

.NET基础知识

在clr上编译运行的代码就是托管代码  非CLR编译运行的代码就是非托管代码  非托管代码用dispose free using 释放  理性认识: 托管: .net框架下的程序 。c#,vb.net 等等。 非托管: c++ ,vb 等等,只要不是用 .net 写的程序,都可以认为是非托管。 3.软件测试方法分为(白盒测试)(黑盒测试)。 4..NET通过对各语言先编译成( MSIL),然后再执行时用(JIT )将其编译成本地平台代码,来实现异构…

jar 中点的用法

C, c#, C++ 发表评论
在jar命令的说明中有这样一个用法 jar cvfm classes.jar mymanifest -C foo/ . 意思是将 foo/ 目录中的所有文件归档到 "classes.jar" 中   其中这个点(.)代表什么呢?   代表根目录,就是说将根目录和其下的所有目录和文件一并打包。 如果没有目录只有文件,你可以指定文件的名字!    

模拟发送短信

c# 发表评论
<LinearLayout    android:layout_width="match_parent"   android:layout_height="50dp">   <TextView        android:layout_width="wrap_content"       android:layout_height="wrap_content"       android:layout_gravity="center_vertical"       android:padding="10dp"       android:text="From:"/>   <TextView        android:id="@+id/serder"       android:layout_widt…

.NET中C#堆VS栈:Part IV

描述   让我们从GC的视角看一下这个问题。如果要可靠的找出垃圾,我们需要一个高效的方法。显然,我们需要决定哪些是垃圾,哪些不是。为了确定哪些需要保留,首先我们假设所有没有被使用的都是垃圾。设想一下我们有两个朋友:JIT和CLR,他们负责跟踪什么正在使用并且给出一个保存清单。我们称这份清单为根清单,因为我们使用它作为起始点。我们需要保存一个主清单用来描述我们想保留的东西都在哪。那…

c# 变量的 内联赋值 vs. 构造函数内赋值

c# 发表评论
上下文:c#中变量的内敛赋值其实是在构造函数中完成的,JIT会把变量的赋值语句放入每个构造函数开始的位置,因此,当类中有很多变量使用内联赋值,同时类也有多个构造函数的时候,实际编译生成的代码量会以乘法的方式叠加。比如一个类中有3个变量使用内联赋值,有4个构造函数,那么实际生成的赋值语句的数量将达到3x4=12句。   结论:尽量避免使用内联赋值,优先使用构造函数内赋值     类代码如下:…

【C#】泛型篇

c# 发表评论
泛型类实例化的理论 C#泛型类在编译时,先生成中间代码IL,通用类型T只是一个占位符。在实例化类时,根据用户指定的数据类型代替T并由即时编译器(JIT)生成本地代码,这个本地代码中已经使用了实际的数据类型,等同于用实际类型写的类,所以不同的封闭类的本地代码时是不一样的。 泛型类的静态成员 泛型类中数据类型的约束 泛型中的静态构造函数 泛型类中的方法重载 泛型类的方法重写 总结 C# 泛型…

Beginning.Microsoft.Visual.C.Sharp.2008.翻译(1.1.3-1.1.4)

MSIL和JIT<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 当你使用.NET Framework库编译代码的时候,你不必直接创建针对特定操作系统的本地代码。相应的,你的代码将会被编译为Microsoft中间语言(MSIL)代码。这样的代码不针对任何操作系统,也不针对C#。其他.NET Framework——比如Visual Basic——同样在第一层被编译成这个语言。当你开发C#应用时,这个编译过…

CLR via C# 读书笔记1-5

c#, CLR 发表评论
本地代码生成器: NGen.exe NGen.exe 能把 IL 代码变异为本地代码,这使得在运行时 CLR 的 JIT 编译器不需要在运行时编译 IL 代码从而提高运行效率。NGen.exe 适用以下两个场景: ■ 提高程序的启动速度 ■ 降低程序的 working set (当你的程序集会被多个进程适用的时候)  NGen.exe 有这个作用的原因是它把编译后的本地代码存放在一个独立文件中,而这个文件可以被内存映射到多个进程的地址空间中,这…

保护.net中的dll文件(防止破解、反编译dll)

保护.net中的dll文件(防止破解、反编译dll) 2009-12-13 19:34 .net是一种建立在虚拟机上执行的语言,它直接生成 MSIL 的中间语言,再由.net编译器 JIT 解释映象为本机代码并交付CPU执行。中间语言很容易被反编译,所以研究下如何有效的保护dll文件。 我大致的方法为 :强签名+混淆+加密。强签名强命名程序集,可以确保你的程序集唯一,而不被篡改、冒用等;即使相同名字的程序集如果签名也会不同。强…

如何保护.net中的dll文件(防破解、反编译)

c# 发表评论
.net是一种建立在虚拟机上执行的语言,它直接生成 MSIL 的中间语言,再由.net编译器 JIT 解释映象为本机代码并交付CPU执行。中间语言很容易被反编译,所以研究下如何有效的保护dll文件。     我大致的方法为 :强签名+混淆+加密。     强签名     强命名程序集,可以确保你的程序集唯一,而不被篡改、冒用等;即使相同名字的程序集如果签名也会不同。     强签名很简单,本站另一文章已经详细进行了…

《C#入门经典》再次阅读时的读书笔记(一)

第1章 C#简介 1.Net Framework是Microsoft为开发应用程序而创建的一个富有革命性的新平台,它可以创建Windows应用程序,Web应用程序,Web服务和其他各种类型的应用程序. 2.编译.Net Framework库的代码时,先将其编译为MSIL(Microsoft Intermediate Language),再由Just-In-Time(JIT)编译器编译为本地机器代码.MSIL中间语言代码仅在需要时才编译. 3.程序集包括可执行应用程序文件(.exe)和其他应用程序使用的…

C#4.0捷径教程笔记(1)

C#预览     1.C#和C++的差异      C#编译成托管代码,托管代码介于高级语言和低级语言之间,运行的时候通过JIT(Just In Time)来动态编译托管代码,而C++直接编译成机器码,即本地代码。     2.什么是动态编译     动态编译就是在中间语言执行的第一次进行编译,把编译好的机器码文件保存起来,以后运行的时候再重新调用。中间语言往往内存占用比较少,相比于机器码更加精炼,使得应用程序的工作集…
下一页 »