2015-10-27 C# 第三次课
1、StringBuilder使用方法
string s=null;和string s="";区别:
1、string s=null; 不在内存中开辟空间
2、string s="";在内存中开辟空间,但空间中没有值(""也是一个字符串)
方法一:结果与方法二相同,但这种方法很耗系统资源,建议不要使用.
string s1 = "aaa"; s1 += "bbb"; s1 += "cccc"; s1 += "dddd"; Console.WriteLine(s1);
方法二:结果与方法一相同,这种方法最优化,建议使用.
string s1 = "aaaa"; StringBuilder sb = new StringBuilder(); sb.Append(s1); sb.Append("vvvvvv"); sb.Append("dddddd"); //Console.WriteLine(sb.ToString());
另外字符常用方法:
字符串变量传值:
string s1 = "a";
string s2 = "b";
string s = string.Format("大家好,小明今年{0}岁,小王今年{1}岁", s1, s2);
将S1的值传递给{0},S2的值传递给{1},整合成一个新的字符串赋值给S
2、format方法:(foreach方法就是对一个集合或者数组进行遍历)
Foreach遍历数组的方法:
class Program { static void Main(string[] args) { string[]aString={"aaa","ccc","ddd","eeee"};; foreach(var c in aString) //遍历 { Console.WriteLing(c); } Conesole.ReadKey(); }
} }
结果:
3、错误和异常:
3.1、错误就是语法有问题,不能够编译通过的。
class Program { static void Main(string[] args) { stringg a="dsadfa"; Console.ReadKey(); }
} }
3.2、异常是可以编译通过,但是不能够正常的运行
class Program { static void Main(string[] args) { string[] aString={"aaa","ccc","ddd","eeee"}; Console.WriteLine(aString[4]); Console.ReadKey(); }
} }
3.3异常处理:(把可能发生异常的地方,放在“try”里面 当发生异常的时候通过“catch(Exception ex)”来捕获它)
class Program
{
static void Main(string[] args) { try { string[] aString={"aaa","ccc","ddd","eeee"}; Console.WriteLine(aString[4]); } catch(Exception ex) { //Console.WriteLine(ex.Message); //表示把异常信息打印出来
Console.WriteLine(网站正在维修中...); //不想让客户看见异常原因是什么,可以通过这来写,这样会比较好
}
finally //不管是否发生异常,这里面都会执行
{
Console.WriteLine;
}
Console.ReadKey(); }
} }
4、数组和集合
class Program { static void Main(string[] args) { char[] a = new char[] { 'a', 's', 'f', 'e', 'r', 't', 'y' }; Console.WriteLine("请输入你要读取的第几个元素值:"); int i = Convert.ToInt32(Console.ReadLine()); //Console.ReadLine(): 表示在控制台里面获取到输入的内容. if (i <= a.Length) { Console.WriteLine("指定位置的元素值为:"+a[i - 1]); } else { Console.WriteLine("您输入的数字超出了数组的长度"); }
Console.ReadKey();
}
} }
5、添加和删除数组元素(ArryList)
System.Collections命名空间
ArryList使用的大小可以按照需求动态增加
class Program { static void Main(string[] args) { char[]aChar=new char[] { 'a', 's', 'f', 'e', 'r', 't', 'y' }; ArrayList alist =new ArrayList(); foreach(var a in aChar) { alist.Add(a); // Add里面是输入object数据类型 } foreach(var al in alist) { Console.WriteLine(al); } Console.ReadKey(); } } }
注:Add里面也可以写删除、添加、插入、清除这些元素:
//List.RemoveAt(0);//删除第一个元素
//List.Add(0);//在List的末尾添加0
//List.Insert(1, 5);//在索引值为1处插入5
//List.Clear();//清除现有所有元素
6、object类型是任何数据类型的父类
注:object是属于引用类型
class Program { static void Main(string[] args) { int[]aNumber={2,23,234,234}; ArrayList alist=new ArrayList(); foreach(var a in aNumber) { alist.Add(a); // Add里面输入的是object数据类型,要将值类型转为引用类型叫装箱 装箱拆箱有利于损耗性能 } foreach(var al in alist) { Console.WriteLine(al); } Console.ReadKey(); } } }
注:使用”ArrayList“在数据操作过程中,容易导致装箱拆箱会影响到性能问题,这样我们就可以用泛型类型来解决装箱拆箱问题。
7、泛型(list<T>)
class Program { static void Main(string[] args) { int[]aNumber={2,23,234,234};
List<int>list=new List<int>(); // list<T>表示泛型
foreach(var a in aNumber) { list.Add(a); } Console.ReadKey(); } } }
注:list<T>里面也可以写删除、添加、插入、清除这些元素:
//List.RemoveAt(0);//删除第一个元素
//List.Add(0);//在List的末尾添加0
//List.Insert(1, 5);//在索引值为1处插入5
//List.Clear();//清除现有所有元素
8、Hashtable的用法
摘要:当对一个数组进行删除、清除、插入的话,这个时候顺序就打乱了,要是想精确定位某一个具体的值就要用“Hashtable”方法
1.1(Hashtable存储方式就是key value)
例子:
class Program { static void Main(string[] args) { Hashtable ht=new Hashtable(); //Hashtable用法 ht.Add("key1","aaa"); ht.Add("key2","ccc"); foreach(var key in Keys) { Console.WriteLine(ht[key]); } Console.ReadKey(); } } }
显示的结果:
1.2 Hashtable的泛型形式Dictionary
class Program { static void Main(string[] args) { Dictionary<string,string>dt =new Dictionary<string,string>(); dt.Add("key1","daaa"); dt.Add("key2","ddddd"); foreach(var key in Keys) { Console.WriteLine(ht[key]); } Console.ReadKey(); } } }
显示的结果:
9、面向对象的语言三大特点:封装、继承、多态
1、封装
1.1 public(访问不受限制) 可以在当前命名空间的所有文件+外部的类库文件调用。
1.2 protected(访问仅限于本类或者其子类,可以跨程序集) 可以在本类或者其子类调用(跨程序集的子类也可以)
1.3 private(访问仅限于本类) 只能够在本类里面调用
1.4 internal(访问仅限于当前程序集) 只能在当前的命名空间里面调用。
1.5 protected internal 在当前命名空间下的所有文件,以及跨程序集的子类里面可以用。
作者:逢场作戏
出处:http://www.cnblogs.com/ruanmou
博客园:逢场作戏博客
说明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。