1
、自定义泛型的索引器。问题一;
2
、泛型的目的也是为了代码重用
(
算法重用
)
。
3
、泛型接口:实现接口的时候两种方式。开放类型,封闭类型。
4
、泛型方法,类本身不是泛型的,只需调用该方法的时候需要指定一下。
5
、
装箱( 将值类型转换成引用类型的过程 ),拆箱( 将引用类型转换成值类型的过程叫拆箱 )。
装箱的时候,使用什么类型来装箱,拆箱的时候还必须使用对应的类型来拆箱。
6
、
由于字符串类型和int类型在内存上根本不存在“交集”,也根本无法发生类型转换,而object与int则可以转换,因为任何类型都是继承自 object类型的。
7
、
装箱拆箱次数越多,会影响系统的性能。使用泛型集合省去了装箱拆箱的过程,性能大大提升。
8、foreach :要多看看老师的视频自己写写内部原理。
9
、文件操作:
path
类中的方法基本都是对字符串的操作,与实际文件没有关系。
目录和文件操作的命名控件
System.IO
string ChangeExtension(string path, string extension) (*)
修改文件的后缀,“修改”支持字符串层面的,没有真的给文件改名
string s = Path.ChangeExtension(@"C:\temp\F3.png", "jpg")
string Combine(string path1, string path2)
将两个路径合成一个路径,比用 +好,可以方便解决不加斜线的问题,自动处理路径分隔符的问题
string s = Path.Combine(@"c:\temp","a.jpg")
string GetDirectoryName(string path) (*)
得到文件的路径名。
Path.GetDirectoryName(@"c:\temp\a.jpg")
string GetExtension(string path)
得到文件的扩展名
string GetFileName(string path)
得到文件路径的文件名部分
string GetFileNameWithoutExtension(string path)
得到去除扩展名的文件名
string GetFullPath(string path)
得到文件的全路径。可以根据相对路径获得绝对路径。
string GetTempFileName()
得到一个唯一的临时文件名
(*)
string GetTempPath()
得到临时文件夹的路径
(*)
Directory
和
DirectoryInfo
void Delete(string path, bool recursive)
删除目录,
recursive
表示是否递归删除,如果
recursive
为
false
则只能删除空目录
bool Exists(string path)
判断目录是否存在
string[] GetDirectories(string path)
得到一个目录下的子目录
string[] GetDirectories(string path, string searchPattern, SearchOption searchOption)
通配符查找目录下的子目录,可以搜索到隐藏文件。
static string[] GetFiles(string path)
得到一个目录下的文件
string[] GetFiles(string path, string searchPattern, SearchOption searchOption)
通配符查找目录下的文件
DirectoryInfo GetParent(string path)
得到目录的父目录
move() //
移动、剪切。只能在同一个磁盘中。目录没有
Copy
方法。可以使用
Move()
方法实现重命名。
获取当前
exe
文件执行的路径:
Assembly.GetExecutingAssembly().Location;
Application.StartupPath.
不要用:
Directory.GetCurrentDirectory();
获取应用程序的当前工作目录。因为这个可能会变,通过使用
OpenFileDialog
或者手动设置
Directory.SetCurrentDirectory()
做
WinForm
程序时会常用到。
10
、递归:就是方法自己调用自己,如果递归的时候没有停止条件,则肯定是死递归,最后报异常,栈溢出。所以
一般递归的时候,都肯定有一个终止条件,或者说在某种条件下才会方法自己调用自己(递归)。
11
、文件的操作的类都在
System.IO.*
里面。
12
、
File.ReadAllLines(
“
path
”
, Encoding.Default);//
读取所有行,返回
string[] ;File.ReadAllText(
“
path
”
, Encoding.Default);//
读取所有文本返回
string;
File.ReadAllBytes(
“
path
”
);//
读取文件,返回
byte[],
把文件作为二进制来处理。
13
、
File.WriteAllLines(
“
path
”
, new string[4] ,Encoding.Default);//
将
string
数组按行写入文件。
File.WriteAllText(
“
path
”
,
“
string
”
);//
将字符串全部写入文件。
File.WriteAllBytes(
“
path
”
,new byte[5]);//
将
byte[]
全部写入到文件
File.AppendAllText()//
将
string
追加到文件
14
、
一般情况下什么样的类可以用 foreach来遍历;实现IEnumerable接口的,只要实现该接口肯定会有 GetEnumerator()方法。任何类型,只要想使用 foreach遍历,就必须在当前类型中存在 public IEnumerator GetEnumerator()方法,一般情况下我们会通过实现 IEnumerable接口来创建该方法。这个方法的作用不是用来遍历的。而是用来获取一个对象,这个对象才是用来遍历的。
15
、
Directory
操作目录(文件夹),静态类。
DirectoryInfo
,文件夹的一个“类”,用来描述一个文件夹对象
(
获取指定目录下的所有目录时返回一个
DirectoryInfo
数组
)
。
16
、
FileInfo
,文件类,用来描述一个文件对象。获取指定目录下的所有文件时,返回一个
FileInfo
数组。
17
、“
\r\n
”在
winform
中的换行!
StreamReader(
StreamWriter
)只对文本文件进行操作。