.NET知识点总结
简介:收集在项目或者练习当中对一些知识点
1、根据选择文件夹的路径获取该文件夹下后缀名为.txt文件
List<string> list = new List<string>();//文件名列表 List<string> pNamelist = new List<string>();//文件名绝对路径列表 /// <summary> /// 获取后缀为txt的文件名列表 /// </summary> /// <param name="srcpath">txt文件的上级目录</param> /// <returns>返回相对路径下txt文件名的列表</returns> public List<string> GetFileList(string srcpath) { try { // 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组 string[] filelist = System.IO.Directory.GetFileSystemEntries(srcpath); // 遍历所有的文件和目录 int i=0; foreach (string file in filelist) { // 先当作目录处理如果存在这个目录就重新调用getfileList(string srcpath) if (System.IO.Directory.Exists(file)) { GetFileList(file); } else { string[] fileNames = file.Split('\\'); string fileName = fileNames[fileNames.Length - 1]; if(fileName.Contains("XML") && fileName.Contains(".txt")) { list.Insert(i,fileName);//将txt文件名插入list列表中 pNamelist.Insert(i,file);//将对应的文件的绝对路径插入nNameList列表中 i++; } } } } catch (Exception e) { } return list; }
2、打开选择文件夹的窗体:
FolderBrowserDialog fbd = new FolderBrowserDialog();
if (fbd.ShowDialog()==DialogResult.OK)
{}
3、C#获取文件的各种路径:
4、string,String,Stringbuilder的区别:
(1)、string:表示文本(是C#中的类),是关键字,string不能作为类、结构、枚举、字段、变量、方法、属性的名称。
(2)、String:长度是不可变的(.NET Framework的类,静态数组类),可以作为类、结构、枚举、字段、变量、方法、属性的名称。
(3)、StringBuilder:长度是可变的,在C#程序当中需要对字符串进行修改,最好使用StringBuilder。
(4)、stirng和StringBuilder的区别:
a、string a=“I am”; a=a+“Shang”;这两句代码并非改变了string的长度,而是重新创建了一个新的对象“a”,同时将第一次创建的对象“a”丢弃了,丢弃的“a”将被垃圾收集器收集掉。
b、StringBuilder是专门用来对字符串和字符执行动态操作的类。
StringBuilder a= new StringBuilder("I am"); a.Append("Shang");
StringBuilder在内部有一个足够长的字符数组用于存放字符串对象,当字符串长度没超过字符数组长度时,所有操作都是针对同一个字符数组。当长度超过时,StringBuilder将自动创建一个更长的数组,把原来的数据复制到新数组中。
两者效率测试代码如下:
string a = "b"; StringBuilder b = new StringBuilder(); int i; //string DateTime dta0 = DateTime.Now;//string 开始变化前的时间 for (i = 0; i <= 100000; ++i) { a += "b"; } DateTime dta1 = DateTime.Now;//string 结束变化的时间 TimeSpan tsa = dta1 - dta0;//计算出时间差 Console.WriteLine("string变化的时间为:{0}", tsa.ToString()); //StringBuilder DateTime dtb0 = DateTime.Now;//StringBuilder 开始变化前的时间 for (i = 0; i <= 100000; ++i) { b.Append("a"); } DateTime dtb1 = DateTime.Now;//StringBuilder 结束变化的时间 TimeSpan tsb = dtb1 - dtb0;//计算出时间差 Console.WriteLine("StringBuilder变化的时间为:{0}", tsb.ToString()); Console.ReadLine();
7、名词释义。
AutoEventWireup:指示控件的事件是否匹配。true:匹配,false:不匹配
6、数据控件GridView奇偶行显示不同的样式:
protected void gvNotification_RowDataBound(object sender, GridViewRowEventArgs e)
{
//设置奇偶行不同的背景色
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.RowIndex % 2 == 0)
{
e.Row.Style.Add(HtmlTextWriterStyle.BackgroundColor, "#FFF3CA");
}
else
{
e.Row.Style.Add(HtmlTextWriterStyle.BackgroundColor, "#FFFFFF");
}
}
}