C#语法
从_零_开始
这个作者很懒,什么都没留下…
展开
-
C# is\as与强制转换的区别+值类型与引用类型转换区别
1. is : 检查一个对象是否兼容于其他指定的类型,并返回一个Bool值,永远不会抛出异常,只能用于 引用类型的转换2. as:与强制类型转换是一样的,但是永远不会抛出异常,即如果转换不成功,会返回null,只能用于 引用类型的转换3. 强制类型转换:若不成功会抛出异常 int a; string b="abc"; a=(int)b; //强制转换 在C#中,转载 2013-05-27 16:11:42 · 1420 阅读 · 0 评论 -
C# SortedDictionary<TKey,TValue>排序 用法 Sort()用法
使用过Dictionary的人都知道,当每一个Add里面的值都不会改变其顺序,所以需要需要对其排序的时候就用到SortedDictionary,但SortedDictionary并不是那么理想,其默认的方式只支持正序排序,想要反序排序时必须得靠自己重新编写代码,下面来看一个简单的例子:如以下代码在调试时不能使用则需要引用:using System.Linq;using System.C原创 2013-07-23 21:14:17 · 11300 阅读 · 2 评论 -
字符串分割
如何把字符串“1.B2.C3.A4.B5.A6.C7.AC8.BC9.AC10.BD11.(1)810 N (2)5 m/s 12.5倍” 转化成1.B2.C3.A4.B5.A6.C7.AC8.BC9.AC10.BD11.(1)810 N (2)5 m/s 12.5倍即以“数字.”分割 public static void原创 2013-08-01 15:53:52 · 462 阅读 · 0 评论 -
C# 接口调用
using System; namespace ClassLibrary2{ interface IEmploy //接口 { void Speak(); //方法 } class Hello:IEmploy //Hello类实现接口 {原创 2013-07-28 21:46:40 · 1254 阅读 · 0 评论 -
C#内存释放 原理
便于对文章的开展,需要先明确两个概念。第一个就是很多人用.Net写程序,会谈到托管这个概念。那么.Net所指的资源托管到底是什么意思,是相对于所有资源,还是只限于某一方面资源?很多人对此不是很了解,其 实.Net所指的托管只是针对内存这一个方面,并不是对于所有的资源;因此对于Stream,数据库的连接,GDI+的相关对象,还有Com对象等等,这 些资源并不是受到.Net管理而统称为非托管资源。原创 2013-08-25 15:13:42 · 4142 阅读 · 0 评论 -
C# 子类和父类的初始化顺序
子类全局静态变量 -> 父类全局静态变量 -> 父类构造函数 ->子类构造函数原创 2013-11-29 15:31:34 · 2807 阅读 · 0 评论 -
NET下的内存分配机制
对于任何对象的产生,都伴随着内存空间的分配,那么本文将初步介绍一下.NET下,是如何进行内存分配的。 这里部分引用了Anytao《你必须知道的.NET》和happyhippy在《类型实例的创建位置、托管对象在托管堆上的结构》的相关内容。1.概述 CLR支持两种基本类型:值类型和引用类型。因此,还是把MSDN这张经典视图拿出来做个铺垫。 关于具体每种分类都有哪些类转载 2014-03-04 22:02:49 · 577 阅读 · 0 评论 -
C# sealed/static/volatile/extern
一 static关键字用法所有方法都可以访问静态数据,但是静态函数,却不用访问非静态成员!!!静态函数,用类去调用,不要用对象,否则是错误的。!!!静态类,所有成员,必须是静态的。如果想你的静态数据没有被修改,那么可以用staticreadonly 全局变量和全局静态变量的区别1)全局变量是不显式用static修饰的全局变量,但全局变量默认是动态的,作用域是整个工程,在一原创 2013-05-29 09:26:59 · 941 阅读 · 0 评论 -
const和readonly的区别
初始化赋值不同const修饰的常量必须在声明的同时赋值,例如:public class Class1 { public const int MaxValue = 10;//正确声明 public const int maxValue; //错误,常量字段要求提供一个值 public Class1() { maxValue原创 2013-05-29 09:07:31 · 518 阅读 · 0 评论 -
C#关键字—override 和 new 的区别
override 和 new 的区别 1.你从基类调用虚函数,就会不同。用override重写,会调用重写后的函数。用new重写,则仍调用基类的函数。2.new 是“重写”的默认修饰符,若不显式的声明会默认添加new关键字,且会生成警告, 但不影响执行。3.new和override都是重写基类方法 ,都只能重写 virtual、abstract、override修饰的functio原创 2013-05-27 13:13:04 · 707 阅读 · 0 评论 -
C#关键字
首先大部分的C#关键字都在下表:abstractasbaseboolbreakbytecasecatchcharcheckedclassconstcontinuedecimaldefaul转载 2013-05-27 13:02:41 · 871 阅读 · 0 评论 -
C#基础——var关键字用法
VAR是3.5新出的一个定义变量的类型,其实也就是弱化类型的定义,VAR可代替任何类型,编译器会根据上下文来判断你到底是想用什么类型的 至于什么情况下用到VAR 我想就是你无法确定自己将用的是什么类型就可以使用VAR。类似 OBJECT,但是效率比OBJECT高点 使用var定义变量时有以下四个特点:1. 必须在定义时初始化。也就是必须是var s = “abcd”原创 2013-05-23 09:23:23 · 537 阅读 · 0 评论 -
abstract 抽象类 用法
abstract表明一个类是不完整的,只能作为其他类的一个基类。抽象类与非抽象类的不同之处有:1.抽象类无法直接用例子说明,且在抽象类中不能使用操作符new。2.抽象类允许(但不需要)含有抽象成员。3.抽象类不能被密封(密封类不能被继承)EXAMPLE:抽象方法没有实现,所以方法定义后面是分好,而不是方法块。public abstract class A{p原创 2013-08-15 16:18:48 · 737 阅读 · 0 评论 -
WebService工作原理 与 性能测试结论
用更简单的方式给大家谈谈WebService,让你更快更容易理解,希望对初学者有所帮助。WebService是基于网络的、分布式的模块化组件。 我们直接来看WebService的一个简易工作流程:客户端 ——>阅读WSDL文档(了解webservice的请求) ——> 调用WebService 上面的流程是一个大致的描述,客户端阅读WSDL文档发送请求,然后调用Web服务转载 2017-01-03 19:56:31 · 2165 阅读 · 0 评论 -
float,double,decimal的区别于误解
在精确计算中使用浮点数是非常危险的,尽管C#在浮点数运算时采取了很多措施使得浮点数运算的结果看起来是非常正常的。但实际上如果不清楚浮点数的特性而贸然使用的话,将造成非常严重的隐患。 考虑下面的语句: double dd = 10000000000000000000000d; dd += 1;原创 2017-01-25 13:45:12 · 18134 阅读 · 3 评论 -
编程中的注意点
1. if (txtRelationNo.EditValue != null && !string.IsNullOrEmpty(txtRelationNo.Text)) { }如果去掉 !string.IsNullOrEmpty(txtRelationNo.Text)判断,则当txtRelationNo 为空时,txtRelationNo.EditValue 会出错。原创 2013-07-30 10:51:13 · 517 阅读 · 0 评论 -
LRU算法介绍
什么是LRU算法? LRU是Least Recently Used的缩写,即最近最少使用页面置换算法,是为虚拟页式存储管理服务的。关于操作系统的内存管理,如何节省利用容量不大的内存为最多的进程提供资源,一直是研究的重要方向。而内存的虚拟存储管理,是现在最通用,最成功的方式——在内存有限的情况下,扩展一部分外存作为虚拟内存,真正的内存只存储当前运行时所用得到信息。这无疑极大地扩充了内存的转载 2013-07-04 14:11:56 · 754 阅读 · 0 评论 -
C# 强引用与弱引用的区别
我们平常用的都是对象的强引用,如果有强引用存在,GC是不会回收对象的。我们能不能同时保持对对象的引用,而又可以让GC需要的时候回收这个对象呢?.NET中提供了WeakReference来实现。弱引用可以让您保持对对象的引用,同时允许GC在必要时释放对象,回收内存。对于那些创建便宜但耗费大量内存的对象,即希望保持该对象,又要在应用程序需要时使用,同时希望GC必要时回收时,可以考虑使用弱引用。原创 2013-07-04 13:17:00 · 4171 阅读 · 0 评论 -
C#—特殊引用类型string
一.恒定的字符串 要想比较全面的了解stirng类型,首先要清楚.Net中的值类型与引用类型。在C#中,以下数据类型为值类型: bool、byte、char、enum、sbyte以及数字类型(包括可空类型) 以下数据类型为引用类型: class、interface、delegate、object、stirng 看到了吗,我们要讨论的stirng赫然其中。被声明为string型变原创 2013-05-27 15:30:37 · 844 阅读 · 0 评论 -
C#值类型和引用类型区别
在C#中值类型:整型、布尔型、字符型、实数型、结构型、枚举型。引用类型:类、对象、字符串、数组、接口、委托。区别:1、值类型通常被分配在栈上,它的变量直接包含变量的实例,使用效率比较高。2、引用类型分配在托管堆上,引用类型的变量通常包含一个指向实例的指针,变量通过该指针来引用实例。3、值类型继承自ValueType(注意:而Syste原创 2013-05-27 14:54:59 · 886 阅读 · 0 评论 -
泛型的使用
泛型:通过参数化类型来实现在同一份代码上操作多种数据类型。利用“参数化类型”将类型抽象化,从而实现灵活的复用。例子代码:class Program { static void Main(string[] args) { int obj = 2; Testint> test = new Test转载 2013-05-28 16:53:42 · 534 阅读 · 0 评论 -
C#反射
肤浅理解,反射实际上就是得到程序集中的属性和方法.实现步骤:1,导入using System.Reflection;2,Assembly.Load("程序集")加载程序集,返回类型是一个Assembly3, foreach (Type type in assembly.GetTypes()) { string t =转载 2013-06-03 11:12:44 · 486 阅读 · 0 评论 -
HashTable、Map、Dictionar的区别
哈希表:非泛型的有Hashtable,泛型的有Dictionaryjava里叫MAP,C#里叫HashTable,讲的都是同样的数据结构关于Hashtable与Dictionary性能的讨论我个人是觉得,最好使用Dictionary,理由如下: 1、Dic是类型安全的,这有助于我们写出更健壮更具可读性的代码,而且省却我们强制转化的麻烦。 2、Dic是泛行的,当原创 2013-07-08 10:56:38 · 1581 阅读 · 0 评论 -
NUnit2.0详细使用方法
1. TDD的简介 首先什么是TDD呢?Kent Beck在他的>(Addison-Wesley Professional,2003)一书中,使用下面2个原则来定义TDD:·除非你有一个失败的自动测试,永远不要写一单行代码. ·阻止重复 我想第一个原则是显而易见的.在没有失败的自动测试下就不要写代码.因为测试是嵌入在代码必须满足的需求中.如果没有需求,就没有必要实现任何东西.所以这转载 2013-06-03 16:04:42 · 510 阅读 · 0 评论 -
C#Word操作
导入COM库:Microsoft word 12.0 Object Library.引用里面就增加了: 原http://support.microsoft.com/kb/316384/zh-cn#top创建新Wordobject oMissing = System.Reflection.Missing.Value; Word._Application oWord;转载 2013-05-30 08:41:13 · 522 阅读 · 0 评论 -
C#[Serializable]在C#中的作用-NET 中的对象序列化
深入探讨C#序列化和反序列化之前我们先要明白什么是序列化,它又称串行化,是.NET运行时环境用来支持用户定义类型的流化的机制。序列化就是把一个对象保存到一个文件或数据库字段中去,反序列化就是在适当的时候把这个文件再转化成原来的对象使用。其目的是以某种存储形成使自定义对象持久化,或者将这种对象从一个地方传输到另一个地方。.NET框架提供了两种串行化的方式:1、是使用BinaryFormatter进行原创 2013-06-05 14:02:33 · 3958 阅读 · 0 评论 -
Parse()与TryParse()区别
int.Parse()是一种类容转换;表示将数字内容的字符串转为int类型。如果字符串为空,则抛出ArgumentNullException异常;如果字符串内容不是数字,则抛出FormatException异常;如果字符串内容所表示数字超出int类型可表示的范围,则抛出OverflowException异常;int.TryParse 与 int.Parse 又较为类似,但它不会产生异常,原创 2013-07-17 15:36:42 · 2865 阅读 · 1 评论 -
C#中Dictionary的用法及用途
Dictionary是一个泛型他本身有集合的功能有时候可以把它看成数组 他的结构是这样的:Dictionary 他的特点是存入对象是需要与[key]值一一对应的存入该泛型 通过某一个一定的[key]去找到对应的值 举个例子: //实例化对象 Dictionary dic = new Dictionary(); //对象打点添加 dic.Add(1, "one")转载 2013-07-02 16:07:39 · 487 阅读 · 0 评论 -
数组与ArrayList的主要区别
数组与ArrayList的关系与区别一、数组与ArrayList的主要区别:效率、类型识别和primitive type。数组([]):最高效;但是其容量固定且无法动态改变;ArrayList:容量可动态增长;但牺牲效率;建议:首先使用数组,无法确定数组大小时才使用ArrayList!1.效率:数组扩容是对ArrayList效率影响比较大的一个因素。每当转载 2013-05-28 11:11:51 · 1408 阅读 · 0 评论 -
Array和ArrayList的异同点
Array和ArrayList的异同点相信数组是大家在编程最常使用的,不论任何语言都存在数组这样的数据结构,由于C#语言是完全面向对象的,所以在C#中的数组也是对象,实际上就是Array类的实例,Array类的使用可以说是使用最频繁的,只是大家在使用时都没太在意,如在创建数组int[]时实际上就创建了一个Array类对象的实例。最近我仔细研究了一下C#中的Array及Arr原创 2013-05-28 11:06:02 · 402 阅读 · 0 评论 -
string字符串操作
删除字符串最后4指定的字符: code = code.Remove(code.LastIndexOf(".jpg", System.StringComparison.Ordinal), 4); 删除字符串最后4位:code = code.Substring(0, code.Length - 4);原创 2013-07-03 12:57:08 · 441 阅读 · 0 评论 -
C#中HashTable的用法
一,哈希表(Hashtable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtable中keyvalue键值对均为object类型,所以Hashtable可以支持任何类型的ke转载 2013-07-02 14:56:15 · 403 阅读 · 0 评论 -
应用程序错误记录windows错误日志
应用程序错误记录windows错误日志 应用程序中记录错误日志是在普通不过的开发需求了,但凡系统正规点这都是必不可少的,但之前用的方式除了写txt文件就是写数据库,今天学到一种新方式:错误信息记录windows错误日志,总结下顾名思义,这种方式就是当程序报错后,讲错误信息记录在windows系统自带的事件查看器(注:进入事件查看器的命令:eventvwr.msc)以下是代码实现:转载 2017-06-28 13:22:48 · 3637 阅读 · 0 评论