C#转义序列
摘要:转义序列 产生的字符 字符的Unicode值 \' 单引号 0x0027 \" 双引号 ...
阅读全文
C#中处理字符串和数字
摘要:在CSDN上有人问:C#中有没有判断一个string类型变量是否为数字类型的系统函数(如vb中的IsNumeric(s))? 答案肯定是没有的。有人提议用int.Parse(string)的方法,然后通过捕获异常来判断返回的值。更好的方法是用正则表达式: public int IsNumeric(string str) { int i; if(str != null &...
阅读全文
按照一定的格式生成一定数量的随机数的例子(转载)
摘要:在很多时候需要按照一定的格式生成一定数量的随机数,下面是实现方法 下面是自己写的类 public class MyRandom { private string _strin; private string _strout; private Random _rnd; public MyRandom(string strin) { _rnd=new Random(Sys...
阅读全文
不要忽略c#中的using和as操作符
摘要:是不是很多人不用c#中的using和as操作符?甚至不知道? 其实这2个操作符在小处非常有用。 1、using 按照msdn的解释 using 语句定义一个范围,在此范围的末尾将处理对象。 举例: class TestUsing:IDisposable { public void Dispose() { Conso...
阅读全文
[Serializable]在C#中的作用-NET 中的对象序列化 (转载)
摘要:简介序列化是指将对象实例的状态存储到存储媒体的过程。在此过程中,先将对象的公共字段和私有字段以及类的名称(包括类所在的程序集)转换为字节流,然后再把字节流写入数据流。在随后对对象进行反序列化时,将创建出与原对象完全相同的副本。 在面向对象的环境中实现序列化机制时,必须在易用性和灵活性之间进行一些权衡。只要您对此过程有足够的控制能力,就可以使该过程在很大程度上自动进行。例如,简单的二进制序列化不能满...
阅读全文
DotNet 序列化学习笔记 (转载)
摘要:DotNet中的序列化方法有三种:XML 序列化、SOAP 序列化和二进制序列化。若是序列化到文件的话,前两者生成的是 XML 文件,二进制序列化生成二进制文件。 跟序列化相关的两个类型: SerializableAttribute:指示一个类是可以序列化的。 ISerializable:使对象可以自己控制其序列化和反序列化的过程。 列表比较三种序列化方法...
阅读全文
序列化 - 使用XmlSerializer进行序列化 (转载)
摘要:假设我们需要XML,但是不想要SOAP特有的额外信息,应该怎么办?我们可以使用类库XMLSerializer。代码如下: using System;using System.IO;using System.Xml.Serialization;//[Serializable]public class Insect{ public string name; //[NonSeria...
阅读全文
vs.2005水晶报表学习初识
摘要:WinForm中的水晶报表:1:在窗体上加一个crystalReportViewer;2:添加一个新的CrystalReport并且设计(可以先加一个数据集,然后在向导中添加到报表中)3:在Form的Load()事件中: DataTable dt = new DataTable(); sring source = "server=...
阅读全文
BinaryFormatter序列化实例(五)(转载)
摘要:将Voucher[] vouchers进行序列化时,可以看到Assembly和Type的信息只生成了一次,但是如果在vouchers中包含派生自Voucher的类的实例,也就是说vouchers是一个多态数组的时候,又是什么情况呢。如果BinnaryFormatter保存的是静态类型,那么反序列化时就不能完整恢复对象了。另一方面,因为BinaryFormatter.Serialize方法的参数是o...
阅读全文
BinaryFormatter序列化实例(四)(转载)
摘要:在C#中,一切都是对象,所有的类都从System.Object派生。相对的,一切数组实例也都是对象,所有的数组类都在System.Array派生。而Array类是Serializable的,那么Voucher[]是否能够直接进行序列化呢,我们可以尝试另外一种序列化多个Voucher的方式,代码如下: public void BatchSerialize(string filename, Vou...
阅读全文
BinaryFormatter序列化实例(三)(转载)
摘要:实际应用中,往往需要将Voucher批量保存到磁盘文件,然后发送到业务中心。可以将每个Voucher保存为一个文件,然后将多个文件顺序传输,但这并不是一种很好的方案。 BinnaryFormatter的Serialize方法需要传入一个Stream,这个Stream应当是可以持续写入的,因此将多个Voucher写入同一个stream中,应该是没有问题的。VoucherSerializer的Ba...
阅读全文
BinaryFormatter序列化实例(二)(转载)
摘要:接下来,实现Voucher类的反序列化,代码如下: public Voucher Deserialize(string filename) { BinaryFormatter formatter = new BinaryFormatter(); Voucher voucher = null; FileStream fs = new FileStream(filename...
阅读全文
BinaryFormatter序列化实例(一)(转载)
摘要:前几天写了一篇.NET序列化概述性的文章,有朋友说对技术的描述不够详细,因此准备写一系列文章,以一个实例为基础,详细描述各种序列化的使用方法和注意事项。这一系列文章是为不熟悉序列化的读者准备的,已用过序列化的可以只看一下每篇中加粗的一句话,感兴趣再阅读全文。文中的示例类Voucher和VoucherItem非常简化,实际中的凭证包含更多的信息。 财务系统中经常要与凭证打交道,在这篇文章里,我们...
阅读全文
Net中的反射使用入门
摘要:MSDN:ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpguide/html/cpcondiscoveringtypeinformationatruntime.htm提纲:1、 什么是反射2、 命名空间与装配件的关系3、 运行期得到类型信息有什么用4、 如何使用反射获取类型5、 如何根据类型来动态创建对象6、 如何获取方法以及动态调用方法7、 动...
阅读全文
C#反射
摘要:反射的定义:审查元数据并收集关于它的类型信息的能力。元数据(编译以后的最基本数据单元)就是一大堆的表,当编译程序集或者模块时,编译器会创建一个类 定义表,一个字段定义表,和一个方法定义表等,。System.reflection命名空间包含的几个类,允许你反射(解析)这些元数据表的代码
阅读全文
强命名程序集及其部署
摘要:我们知道,以前在Windows下开发程序时常会遭遇著名的“DLL Hell”问题,即动态链接库的向后兼容问题。微软在.Net产生前曾尝试使用COM组件的方式来解决DLL Hell问题,即使用Guid来唯一的标识每一个COM组件。但是,实际上使用COM组件(包括版本升级)也是一件颇为麻烦的事:为了运行COM组件就必须在组册表中对其进行注册,重新编译有可能破坏Guid从而导致原来引用此COM组件的程序...
阅读全文
C#面试基础问题
摘要:传入某个属性的set方法的隐含参数的名称是什么?value,它的类型和属性所声名的类型相同。 如何在C#中实现继承?在类名后加上一个冒号,再加上基类的名称。 C#支持多重继承么?不支持。可以用接口来实现。 被protected修饰的属性/方法在何处可以访问?在继承或间接继承与这个类的子类中可以访问。 私有成员会被继承么?会,但是不能被访问。所以看上去他们似...
阅读全文
C#中的接口 (转载)
摘要:本文中所有图示纯为个人理解(参考了Assembly中元数据的存储方式),与真实情况可能有所出入。 图中绿色表示公有方法,红色表示私有方法。 本文将通过以下四个案例来分析C#中的接口究竟是如何工作的。 1、公有方法实现接口方法 尽管C#在定义接口时不用指明接口方法的访问控制方式,但默认接口方法均为public型(这可以从反编译的IL代码中看到)。下面是使用Reflector查看的接口IL代码 .c...
阅读全文