
C#
分析C#相关技术知识
思绪零乱成海
静以修身,俭以养德。非淡泊无以明志,非宁静无以致远。
展开
-
浅谈C#中virtual和abstract的区别
virtual和abstract都是用来修饰父类的,通过覆盖父类的定义,让子类重新定义。它们有一个共同点:如果用来修饰方法,前面必须添加public,要不然就会出现编译错误:虚拟方法或抽象方法是不能私有的。毕竟加上virtual或abstract就是让子类重新定义的,而private成员是不能被子类访问的。但是它们的区别很大。(virtual是“虚拟的”,abstract是“抽象的转载 2017-05-04 22:42:58 · 309 阅读 · 0 评论 -
浅谈C#值类型和引用类型
首先,什么是值类型,什么是引用类型?在C#中值类型的变量直接存储数据,而引用类型的变量持有的是数据的引用,数据存储在数据堆中。值类型(value type):byte,short,int,long,float,double,decimal,char,bool 和 struct 统称为值类型。值类型变量声明后,不管是否已经赋值,编译器为其分配内存。引用转载 2017-05-04 13:40:51 · 268 阅读 · 0 评论 -
浅谈C#深拷贝,浅拷贝
1.深拷贝与浅拷贝 拷贝即是通常所说的复制(Copy)或克隆(Clone),对象的拷贝也就是从现有对象复制一个“一模一样”的新对象出来。虽然都是复制对象,但是不同的 复制方法,复制出来的新对象却并非完全一模一样,对象内部存在着一些差异。通常的拷贝方法有两种,即深拷贝和浅拷贝,那二者之间有何区别呢?MSDN里对 IClone接口的Clone方法有这样的说明:在深层副本中,所有的对象都是重复转载 2017-05-04 10:35:17 · 2258 阅读 · 0 评论 -
浅谈C#ref和out
C#中函数的形参和实参之间的传递可以分为值传递和引用传递。值传递就是指形参是实参的一份拷贝,函数体使用这份拷贝进行运算,函数运行结束后丢弃该拷贝,并不影响实参的值。引用传递就是将变量的地址传给方法,方法内对该变量的操作会影响该地址所指向内存中的值。C#中ref和out均有该作用。ref:ref 关键字使参数按引用传递。当控制权传递回调用方法时,在方法中对参数的任何更改都将反映在该变原创 2017-05-03 14:00:00 · 381 阅读 · 0 评论 -
浅谈C#中IL
一、前言IL是什么? Intermediate Language (IL)微软中间语言C#代码编译过程?C#源代码通过LC转为IL代码,IL主要包含一些元数据和中间语言指令;JIT编译器把IL代码转为机器识别的机器代码。如下图语言编译器:无论是VB code还是C# code都会被Language Compiler转换为MSILMSI转载 2017-05-05 15:21:26 · 4508 阅读 · 0 评论 -
C# using的使用
C#中using有三种用法:1. 引入命名空间2. 创建别名3. 定义范围,强制资源清理下面从这三个角度来谈谈using的应用。(1)引入命名空间:using + 空间名,类似于java的import,C++的include。命名空间是一种避免类名冲突的方法,用于将不同的数据类型组合划分的方式。例如,在.NET中很多的基本类型都位于System命名空间,数据操作类型位于Sy原创 2017-05-08 13:37:03 · 608 阅读 · 0 评论 -
C#连接SQL Server数据库
通过C#f访问和操作数据库中的数据,必须通过以下步骤:1. 创建Connection对象2. Open打开数据库连接3. 创建并通过Command对象操作数据库中的数据4. 数据处理完毕后,通过Close关闭数据库连接创建连接:对于创建连接,也即创建Connection对象,关键的一点就是:根据实际需要正确设定连接字符串。 (a) 设定连接字符串连接字符串:转载 2017-05-09 17:37:26 · 631 阅读 · 0 评论 -
C# Readonly和Const的区别
什么是静态常量(Const)和动态常量(Readonly)先解释下什么是静态常量(Const)以及什么是动态常量(Readonly)。静态常量(Const)是指编译器在编译时候会对常量进行解析,并将常量的值替换成初始化的那个值。动态常量(Readonly)的值则是在运行的那一刻才获得的,编译器编译期间将其标示为只读常量,而不用常量的值代替,这样动态常量不必在声明的时候就初始化,而可转载 2017-05-10 09:45:51 · 296 阅读 · 0 评论