直接用明文文本的方式保存对象信息不是非常科学,现在用二进制序列化的方式来保存。这里要先增加命名空间:using System.Runtime.Serialization.Formatters.Binary;,还要给实体类增加序列化标识特性。通过分层设计来实现:实体类Student.cs:using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace SaveClassInfoToFile {[Serializable] // 增加序列化...
当今的程序界Json大行其道。因为Json对象具有简短高效等优势,广受广大C#码农喜爱。这里发一个序列化及反序列化Json对象通用类库,希望对大家有用。publicclass JsonHelper{#region 对象类型序列化为json 字符///<summary>/// 对象类型序列化为json 字符///</summary>///<typeparam name="T">实体类型</typeparam>///<param name="jsonObject">待转换实体</param>///<param name="encoding">编码格式</param>///<returns>string</r...
1、Finalize方法(C#中是析构函数,以下称析构函数)是用于释放非托管资源的,而托管资源会由GC自动回收。所以,我们也可以这样来区分托管和非托管资源。所有会由GC自动回收的资源,就是托管的资源,而不能由GC自动回收的资源,就是非托管资源。在我们的类中直接使用非托管资源的情况很少,所以基本上不用我们写析构函数。2、大部分的非托管资源会给系统带来很多负面影响,例如数据库连接不被释放就可能导致连接池中的可用数据库连...
1.使用前需将要序列化的类标记为Serializable2.//深拷贝 public static object Clone(object obj){//创建内存流 MemoryStream ms = new MemoryStream();//以二进制格式进行序列化 BinaryFormatter bf = new BinaryFormatter();bf.Serialize(ms, obj);//反序列化当前实例到一个object ms.Seek(0, 0);object res = bf.Deserialize(ms);//关闭内存流 ms.Close();return res;} 原文:http://www.cnblogs.com/guosier/p/5503902.html
string InsertString<T>(T t) { var type = typeof(T); //反射对象 var A = type.GetProperties(); //获取对象属性 var insertString = "insert into " + t.GetType().Name + " values ("; //t.GetType().Name 获取类名 foreach (var b in A) { insertString += "@" + b.Name...
在进行实体转换操作的时候如果需要在对两个实体之间两个属性字段差不多相同的类要进行一个互相的转换,我们要把a对象的所有字段的值都复制给b对象,我们只能用b.属性=a.属性来写,如果属性字段太多的话,就要写很多行复制语句,麻烦还容易漏掉一些,这个时候可以利用c#的反射来实现复制。我们可以写这样一个利用泛型的映射函数。1.适用于创建实体的时候从一个实体作为数据源赋值///<summary>/// 反射实现两个类的对象之间相同属性的...
有时候代码方便,就会使用匿名的东西。1、匿名事件args.CookieGot += (s, e) => { this.IsWebLogon = true; };不用专门再去写方法,当然这种方式简介的时候使用。2、匿名对象var ohList = ohManager.GetList().Select(x => new { x.ID, x.Name,x.CreateTime });用户接口或前后台交互,指定某些字段,且新的对象,不用再去建实体。3、匿名Form线程this.Invoke(new Action(() =...
静态与非静态的区别(1)在非静态类中既可以有实例成员,也可以有静态成员(static修饰)。(2)在调用静态成员的时候要使用:对象名.实例成员。(3)在调用静态成员的时候要使用:类名.静态成员。总结:静态成员使用类名去调用,非静态成员使用对象名去调用。静态函数中只能访问静态成员,不允许访问实例成员 (静静),实例函数中既可以使用静态成员,也可以是实例成员。静态类中只允许有静态成员,不允许出现实例成员。使用:...
转自:http://blog.csdn.net/mm33211/article/details/8143890C# 根据对象类完整名称,创建对象实例 ///<summary>/// 根据指定的类全名,返回对象实例///</summary>///<param name="objFullName">对象完整名称(包名和类名),如:com.xxx.Test</param>publicobject createObjectInstance(string objFullName){//获取当前目录string currentDir = Assembly.GetExecutingAssembly().Location;currentDir = currentDir.Substring(0, ...
面向对象的核心(1).封装 封装的类=数据+对此数据所进行的操作(即算法) 封装起外界不必需要知道的东西,指向外界展现可供展示的东西。 小到一个简单的数据结构,大到一个完整的软件子系统。静态的如某软件系统要收集数据信息项,动态的如某个工作处理流程,都可以封装到一个类中。 具备这种意识,是掌握面向对象分析与设计技巧的关键。(2).抽象 在使用面向对象的方法设计一个软件系统时,首先就要区分出现实世界中的...
一、封装:封装:把客观的事物封装成类,使用和修改方便;作用和结构体使用方法相似,程序执行流程不同;要点:成员变量,属性,成员方法,构造函数,成员方法的静态和非静态,命名空间,常用的访问修饰符public公共的、parvate私有的,只有类本身可以访问,internal默认的,同一个命名空间下可以访问、protected被保护的、同一个继承关系下可以访问;重名问题:同一个作用域下不允许出现重名问题,最简答解释作用域就是一个花括号...
抽象基类关键字, abstractabstractclass SSS { public void aaa() { } }作为抽象基类, 只能在 继承关系 中 担任父类的角色,不能出现在其他地方。 不能建对象。抽象类里面的 方法(函数)不能直接实现, 必须在子类实现。 关键字 override ---------只对属性有用(带大括号的)classoverride EEE : SSS {publicvoid aaa(){} }抽象新建SSS p = new EEE();原文:http://www.cnblogs.com/999c/...
string respDataJson = "A=&B=2&C=asdfasdf"; string respDataJson = "A=&B=2&C=asdfasdf"; var dddddd= StringToObject<ResponseModel>(respDataJson); publicstatic T StringToObject<T>(thisstring str) where T : new(){Type typeData = typeof(T);T entity = new T();System.Reflection.PropertyInfo[] proArray = typeData.GetProperties();var pairs = str.Split(‘&‘);foreach (var p in pairs){var items ...
上面博客学习了使用反射查看类型的信息,以及使用反射获取特性对象。下面使用反射来动态创建对象。首先准备一个Test类: public class TestClass{public TestClass(){Console.WriteLine("这是一个无参构造函数");}public TestClass(int a, int b){Console.WriteLine("这是一个有参数构造函数 > a+b=" + (a + b));}public int show(){return 1;}public static int show(int a,int b){return a + b;}}1.使用无参构造函数创建对象:...
在一个类前加“abstract”关键字,此类就成为抽象类。对应的,在一个方法前加“abstract”关键字,此方法就成为抽象方法。abstractclass Fruit //抽象类{publicabstractvoid GrowInArea();//抽象方法 } 注意抽象方法不能又实现代码,在方法名后直接跟一个分号。 抽象类专用于派生出子类,子类必须实现抽象类中所生命的方法。否子子类仍是抽象类。 抽象类一般用于表达一种比较抽象的事物,比如说“水果”,而抽象方法则...