加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

内存模型与XML处理

发布时间:2020-12-15 22:37:47 所属栏目:百科 来源:网络整理
导读:1、 简单复习- 方法中的变量是要确定内存大小:引用类型2、 对象的创建方式MyClass m = new MyClass();- new创建了对象(newobj)- 构造方法只是做了初始化- 首先new向操作系统申请内存- 计算构造方法的继承关系中所有字段的字节数. 预算满足"字节数 + 常量 +
1、 简单复习
	-> 方法中的变量是要确定内存大小:引用类型

2、 对象的创建方式
	MyClass m = new MyClass();
	-> new创建了对象(newobj)
	-> 构造方法只是做了初始化
	
	-> 首先new向操作系统申请内存
	-> 计算构造方法的继承关系中所有字段的字节数. 
		预算满足"字节数 + 常量 + 8"满足被4整除的最小数
	-> 如果操作系统内存不够了,报异常
	-> 如果内存够了,就返回一个地址
	-> 在托管堆中有一个指针最对象的维护
	-> 指针对象一般指向一个可用内存,如果申请100字节
		那么指针对象会返回当前地址,并下移100字节
	-> 在返回100个字节空间的使用,由构造方法将内存初始化,返回首地址
		交给引用类型变量
	-> 对象创建完毕
	
3、 ref参数的变量必须声明赋值后再传入方法是用
	out参数的变量可以不赋值,但是必须在方法中赋值
	值传递:方法内外不同变量
	引用传递:方法内外变量相同
	装箱(利用Reflector切换到IL,看有几个box),拆箱
	常见交换变量
	 num1 = num1 + num2;
	 num2 = num1 - num2;
	 num1 = num1 - num2;
	 // 只在C#和java中可以实现
	 //字符串
	 num1 = num2 + (num2 = num1).Remove(0);
	 //数字
	 //num1 = num2 + (num2 = num1) * 0;
4、 XML
	Person(name,birth,sex,phone)
	
	-> 手写XML
	-> 使用C#完成xml文件的创建,编辑与删除和查询的功能
	
5、 手写XML
	-> 新建一个文本文件,将其后缀名改为xml
	-> 使用记事本将其打开
	-> 添加文档头
		<?xml version="1.0" encoding="gb2312"?>
	-> 添加根节点
		<root></root>
		<root />
		每一个xml文件必须有一个根节点,但是只允许有一个根节点
		xml文件是大小写敏感的
	-> 使用浏览器将其打开即可查看正确与否
	-> 在xml中所有的内容都是节点
		-> 节点是有分类的
			-> 元素节点
			-> 属性节点
			-> 文本节点
			-> 注释节点
	-> 元素节点
		-> 命名规范
	-> 属性节点
		-> 键值对存在
		-> 每一个值都要使用双引号括起来
		-> 多个属性用空格隔开
	-> 命名空间
		-> 根节点中出现的 xmlns="url"
			xmlns:x="url"

6、 使用C#操作XML
	-> DOM操作	document object model
		将一个xml文件看作成一个对象,每一个节点也是对象,对象与对象的关系就是父子关系
		-> 传统的DOM
			命名空间:System.Xml;
			类:
				XmlDocument
				XmlDeclaration
				XmlElement
				XmlAttribute
				XmlText
		-> Linq to XML
			命名空间:System.Xml.Linq;
			类:
				XDocument
				XElement
				XAttribute
				XName
	-> 事件驱动
		XmlTextReader
		XmlTextWriter
	-> 序列化(所谓序列化就是格式化,安照某种格式进行排列)
		Xml序列化
		1. 创建一个流
		2. 使用XmlSerializer对象(typeof处理需要序列化的类型)
		3. 使用Serialize()方法
		JavaScript序列化

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读