【基础知识】.Net基础加强07 天
一、 自定义泛型
1. 泛型的目的:提高代码的复用性。
2. T:一般叫做“类型参数”,把数据类型作为参数传递
。一般用T类表示或者以大写T开头的比如:TKey,TValue、TOutput、TResult…
3. .net2.0版本中引入的泛型
4. 泛型类、泛型接口、泛型委托(★)
5. 泛型的约束(where)
===============使用where关键字进行类型约束=====================


public class Person<T,T1,T2> where T : struct//约束T必须为数值类型
where T1 : class //后面必须是引用类型
where T2 : new() //这个类必须带有一个无参构造函数,非抽象、非私有
二、 装箱和拆箱 box unbox(面试的时候经常涉及)
1. 装箱:将【值类型】转换为【引用类型】的过程,叫 装箱。
2. 拆箱: 将【引用类型】转换为【值类型】的过程,叫 拆箱。

6. 注意: 装箱的时候使用什么类型装箱,就必须使用什么类型来拆箱。
7. 
8. 装箱和拆箱的性能问题: 性能 会降低。因此写程序的时候尽量不要发生装箱的过程。
三、 foreach()的执行原理
1. 任何类型,只要想使用foreach来循环遍历,就必须在当前类型中存在:
Public IEnumerator GetEnumerator()方法,(一般情况我们会通过实现IEnumerable接口,创建该方法)
2. Public IEnumerator GetEnumerator()这个方法的作用不是用来遍历的,二十用来获取一个对象,这个对象才是用来遍历的。
四、 文件操作相关的类
1. File //操作文件,静态类,对文件整体操作。拷贝、删除、剪切等。
Directory //操作目录(文件夹),静态类。
DirectoryInfo //文件夹的一个“类”,用来描述一个文件夹对象(获取指定目录下的所有目录时返回一个DirectoryInfo数组。)
FileInfo//文件类,用来描述一个文件对象。获取指定目录下的所有文件时,返回一个FileInfo数组。
Path//对文件或目录的路径进行操作(很方便)【字符串】
Stream//文件流,抽象类。
FileStream//文件流,MemoryStream(内存流),NetworkStream(网络流)
StreamReader //快速读取文本文件
StreamWriter//快速写入文本文件
2. Path类
a) Path类中的方法基本上只是对字符串的操作,与实际存储在磁盘上的文件没有任何关系。
3. Directory类:
a) 创建一些目录
b) DirectoryInfo dirInfo = new DirectoryInfo(@”c:\abc”);
把一个文件夹当作对象来用。
五、 什么是递归?
递归就是自己调用自己。
如果递归的时候没有停止条件,则肯定会死递归。最后报异常,栈溢出。
所以一般递归的时候肯定会有一个终止条件
或者是在某种条件下调用自己(递归)
六、 windowfrom中
Tag,没有意义,但是可以用来存放用户的数据。
l 获取当前exe文件执行的路径:
Assembly.GetExecutingAssembly().Location;
Application.StartupPath
七、 File类,主要是操作文件的
1. 判断文件是否存在
File.Exists(文件路径名);
File.Delete(string);文件的删除,即便文件不存在也不报异常
• string[] ReadAllLines(string path) 读取文本文件到字符串数组中
• string ReadAllText(string path) 读取文本文件到字符串中
• void WriteAllText(string path, string contents)将文本contents保存到文件path中,会覆盖旧内容。
• WriteAllLines(string path,string[] contents),将字符串数组逐行保存到文件path中,会覆盖旧内容。
• void AppendAllText(string path, string contents),将文本contents附加到文件path中
File.Create(“ path”);//创建文件
2. 文件流:


字符串和byte数组的转换
1. 字符串转换成byte字节数组

【基础知识】.Net基础加强07 天的更多相关文章
- Linux基础知识与基础命令
Linux基础知识与基础命令 系统目录 Linux只有一个根目录,没有盘符的概念,文件目录是一个倒立的树形结构. 常用的目录功能 bin 与程序相关的文件 boot 与系统启动相关 cdrom 与Li ...
- java线程基础知识----线程基础知识
不知道从什么时候开始,学习知识变成了一个短期记忆的过程,总是容易忘记自己当初学懂的知识(fuck!),不知道是自己没有经常使用还是当初理解的不够深入.今天准备再对java的线程进行一下系统的学习,希望 ...
- day63:Linux:nginx基础知识&nginx基础模块
目录 1.nginx基础知识 1.1 什么是nginx 1.2 nginx应用场景 1.3 nginx组成结构 1.4 nginx安装部署 1.5 nginx目录结构 1.6 nginx配置文件 1. ...
- 这些C++基础知识的基础知识你都学会了吗?
一.C++基础知识 新的数据类型 C语言中的数据类型 C++中新的数据类型 思考:新的数据类型有什么好处?请看下面的代码: 可以见得:新的类型使整个程序更加简洁,程序变得易读易懂!这个就是bool ...
- Ceph基础知识和基础架构认识
1 Ceph基础介绍 Ceph是一个可靠地.自动重均衡.自动恢复的分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储.块设备存储和文件系统服务.在虚拟化领域里,比较常用到的是Cep ...
- Ceph 基础知识和基础架构认识
1 Ceph基础介绍 Ceph是一个可靠地.自动重均衡.自动恢复的分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储.块设备存储和文件系统服务.在虚拟化领域里,比较常用到的是Cep ...
- 算法导论 - 基础知识 - 算法基础(插入排序&归并排序)
在<算法导论>一书中,插入排序作为一个例子是第一个出现在该书中的算法. 插入排序: 对于少量元素的排序,它是一个有效的算法. 插入排序的工作方式像许多人排序一手扑克牌.开始时,我们手中牌为 ...
- 集合框架基础知识-----java基础知识
Java集合框架 :接口:Collection.List .Set. Map:实现类:ArrayList.LinkedList.Vector.HashSet.TreeSet.HashMap.HashT ...
- web前端基础知识- Django基础
上面我们已经知道Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Sessi ...
- jQuery基础知识--Form基础(续)
下拉框应用 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF ...
随机推荐
- 碎片事物的提交 commitAllowingStateLoss()
转:http://blog.csdn.net/kaiqiangzhang001/article/details/42241441 下边两个问题,是在开发中碰到的一些关于Fragment的偶发性的问题, ...
- cin判断读取结束 C++语言
cin是C++的输入流,可以通过>>进行读取. 判断读取结束,一般有两种方法,具体取决于与输入的约定. 1 以特殊值结尾. 如输入整数,以-1结束,那么当读到-1的时候,就确定读取结束了. ...
- Python 前端之JQuery
查找: 选择器 筛选器 操作: CSS 属性 文本 事件: 优化 扩展: Form表单验证 Ajax: 偷偷发请求 www.php100.com/manual/jquery http://blog.j ...
- Java遍历JSON
JSONObject jsonObject = new JSONObject(s);然后用Iterator迭代器遍历取值,建议用反射机制解析到封装好的对象中 JSONObject jsonObject ...
- win 7 IIS 配置
http://jingyan.baidu.com/article/219f4bf723bcb2de442d38ed.html win7旗舰版系统 点击开始→控制面板,然后再点击程序,勿点击卸载程序,否 ...
- VC++ MFC子对话框建立与关闭
主窗体 void CMoshiwindowDlg::OnButton1() { // TODO: Add your control notification handler code here CDi ...
- 深刻理解和运用XMLHttpRequest
本文为转载文章,因见猎心喜,担心失传,故贴此以备不时之需. 原文地址:传送 你真的会使用XMLHttpRequest吗? xmlhttprequest http cors ajax ruoyiqing ...
- Hibernate学习笔记
一.Hibernate基础 1.Hibernate简介 Hibernate是一种对象关系映射(ORM)框架,是实现持久化存储的一种解决方案.Java包括Java类到数据库表的映射和数据查询及获取的方法 ...
- Selenium2+python自动化19-单选框和复选框(radiobox、checkbox)
本篇主要介绍单选框和复选框的操作 一.认识单选框和复选框 1.先认清楚单选框和复选框长什么样 2.各位小伙伴看清楚哦,上面的单选框是圆的:下图复选框是方的,这个是业界的标准,要是开发小伙伴把图标弄错了 ...
- GIS开发环境全面升级10.1
最近,因为公司开发的需要,对开发环境进行全面的升级,在这其中也遇到了不少问题,在之后将陆续整理出来,以便以后查看. 之前开发环境:VS2008,ArcGIS9.3,ArcEngine9.3,Oracl ...