深入.net实质讨论系列(四)
第Ⅰ部分 C# 语 言 (2) Visual C++ 2005 Visual C++ 6有许多Microsoft对Windows的特定扩展。通过Visual C++ .NET,又加入了更多的扩展内容,来支持.NET Framework。现有的C++源代码会继续编译为内部可执行代码,不会有修改,但它会独立于.NET运行库运行。如果让C++代码在.NET Framework中运行,就可以在代码的开头添加下述命令: #using <mscorlib.dll> 还可以把标记/clr 传递给编译器,这样编译器假定要编译托管代码,因此会生成中间语言,而不是内部机器码。C++的一个有趣的问题是在编译托管代码时,编译器...
深入.net实质讨论系列(三)
1.2 公共语言运行库 .NET Framework 的核心是其运行库的执行环境,称为公共语言运行库(CLR)或.NET运行库。通常将在CLR的控制下运行的代码称为托管代码(managed code)。 但是,在CLR执行编写好的源代码之前,需要编译它们(在C#中或其他语言中)。在.NET中,编译分为两个阶段: (1) 把源代码编译为Microsoft中间语言(IL)。 (2) CLR把IL编译为平台专用的代码。 这个两阶段的编译过程非常重要,因为Microsoft中间语言(托管代码)是提供.NET的许多优点的关键。 托管代码的优点 Microsoft中间语言与Java字节代码共享一种理...
深入.net实质讨论系列(二)
1.1 C#与.NET的关系 C#是一种相当新的编程语言,C#的重要性体现在以下两个方面: ● 它是专门为与Microsoft的.NET Framework一起使用而设计的。(.NET Framework 是一个功能非常丰富的平台,可开发、部署和执行分布式应用程序)。 ● 它是一种基于现代面向对象设计方法的语言,在设计它时,Microsoft还吸取了其 他类似语言的经验,这些语言是近20年来面向对象规则得到广泛应用后才开发出 来的。 有一个很重要的问题要弄明白:C#就其本身而言只是一种语言,尽管它是用于生成面 第Ⅰ部分 C# 语 言 向.NET环境的代码,但它...
深入.net实质讨论系列(一)
第一 章 .NET 体系结构 我们不能孤立地使用C#语言,而必须和.NET Framework一起考虑。C#编译器专门用于.NET,这表示用C#编写的所有代码总是在.NET Framework中运行。对于C#语言来说,可以得出两个重要的结论: ● C#的结构和方法论反映了.NET基础方法论。 ● 在许多情况下,C#的特定语言功能取决于.NET的功能,或依赖于.NET基类。 由于这种依赖性,在开始使用C#编程前,了解.NET的结构和方法论就非常重要了,这就是本章的目的。 本章首先了解在.NET 编译和运行所有的代码(包括 C#)时通常会出现什么情况。对这些内容...
MSIL Instruction Set
Base Instructions Instruction Description Stack Transition 1 add add two values, returning a new value …, value1, value2à…, result 2 add.ovf.<signed> add integer value with overflow check …, value1, value2à…, result 3 and bitwise AND …, value1, value2 à…, result 4 arglist get argument list … à …, argListHandle 5 beq.<length> branch on equal …, value1, value2 à … 6 bge.<length> branch on g...
.NET条件编译详解
C#.NET条件编译能够帮助开发人员选择特定的代码节进行编译,并且还能够排除其他代码节。在这里就为大家详细介绍了相关的使用方法。 条件编译是C#比Java多出的东西,但我跟前辈请教后,他们都说条件编译在实际的项目开发中不怎么使用.鉴于是新内容,我还是做做笔记,理解一下好了. .Net中的条件编译主要用途在于根据不同的情况,选择编译不同的代码段落,省的在程序中硬写一堆一堆的代码。 实现方式: 1.局部条件编译 在类的开头部分定义条件编译符号,在类中的任何部分就可以直接使用。 2.全局条件编译 在配置管理器中...
ref和out的用法和区别
因为C#中参数默认是引用的,所以一直没注意ref及out参数修饰符的作用。最近突然想到这个问题。特别写出来,希望对大家有所帮助! 方法参数上的 ref 方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。若要使用 ref 参数,必须将参数作为 ref 参数显式传递到方法。ref 参数的值被传递到 ref 参数。传递到 ref 参数的参数必须最先初始化。将此方法与 out 参数相比,后者的参数在传递到 out 参数之前不必显式初始化。属性不是变量,不能作...
C#制作仿qq界面
还是先让大家看看最终做出来的效果图吧! 以后我讲解的内容大体是这个样子的:(因为时间原因可以会有有一些控件会增加或减少,不过我会尽量都讲解全的) 控件类: ---Button控件的制作 ---CheckBox控件的制作 ---RadioButton控件的制作 窗体类: ---MainForm窗体的制作 (只要继承这个窗体基本上就能披上最简单的外衣了) · 先来看看我们最终要做的效果图(分别对应普通、悬停、按下时的状态): 下面就开始正式做。首先让我们新建一个控件库项目(WINDOWS窗体控件),命名为QLFUI。 ...
c#通用类型
.NET 基础架构概念 · 类型基础 · 通用类型系统 · CLI、CTS、CLS的关系简述 本文不是连环画,之所以在开篇以图形的形式来展示本文主题,其实就是想更加特别的强调这几个概念的重要性和关注度,同时希望从剖析其关系和联系的角度来讲述.NET Framework背后的故事。因为,在作者看来想要深入的了解.NET,必须首先从了解类型开始,因为CLR技术就是基于类型而展开的。而了解类型则有必要把焦点放在.NET类型体系的公共基础架构上,这就是:通用类型系统(Common Type System, CTS)。 我之所以将最基本的内容以独立...
LINQ无主键无法更新表
今天在使用LINQ的时候,奇怪的事情发生了: SubmitChanges完了以后,点表没有发生任何变化,要修改的字段依旧是NULL没有遇到过这么邪恶的事情折腾了一下午还没搞定 就在要搞得崩溃,快要呜呜的时候···忽然想到从前做的东西,不论什么表,我都会习惯性的设定一个主键···额···难道是没有主键的问题···?于是【数据库之家】了“Linq to Sql 没有主键”···搜索结果证实了我的想法设了主键,再试,哈哈,一切都是那么美好 唉···为啥没有教程讲到这一点呢? 需要进行修改,删除的表,一定要存在主健。如果对没有主键的表进...