20151027c#3

string

string str1="aaa";

str1+="bbbb"

一旦字符串创建后就不能修改了,+=时会在堆里重新开辟空间aaabbbb,非常耗费资源

StringBuilder

 System.Text;//命名空间

StringBuilder sb = new StringBuilder();
sb.Append("aaa");
sb.Append("bbb");
Console.WriteLine(sb.ToString()); //返回aaabbb

创建字符后,Append时会在原来的堆加入字符

控制语句

对一个集合(datatable list arrarylist )或数组()进行遍历(从第一个到最后一个)

string[] aString ={"aaa","bbb","ccc"};
foreach (var a in aString)//元素
  {
    Console.WriteLine(a);
  } 

异常错误

 错误:语法上有问题,是不能够编译通过的

string s1 = 1;//错误 1 无法将类型“int”隐式转换为

Console.WriteLine(s1);

异常:是可以编译通过的,但是不能够正常的运行

缺点:页面会显示源代码的错误信息,是不安全的,非常不好的用户体验

string[] aString = { "aaa", "bbb", "ccc" }; Console.WriteLine(aString[4]);//超出了范围

异常处理:把可能发生异常的地方放在try里面,当发生异常时,就来捕获它

try//不发生异常执行的内容
{
    string[] aString = { "aaa", "bbb", "ccc" };
    Console.WriteLine(aString[4]);
}
catch (Exception ex)//发生异常执行的内容
{

    Console.WriteLine(ex.Message);//索引超出了数组界限
    Console.WriteLine("网站正在维修中...");//可显示友好的内容
}
finally//不管是否发生异常,都执行的内容
{
    Console.WriteLine("不管是否发生异常,都执行的内容");
}

数组和集合

存储数据集合

一维数组

int[] i = {1,2,3};//常用

int[] i= new int[3]; a[0]=1; a[1]=1;

int[] i=new int[3]{1,2,3};

foreach (var i in a)
{
    Console.WriteLine("i的值{0}", i);//打印元素
    Console.WriteLine(a[i-1]);//打印所有元素,下标从0开始
}

二维数组

int[,] a={{1,2},{2,3},{3,4}};

缺陷:不能添加内容,修改,清空,功能较少

集合:存放数据的容器,可以添加、修改、清空

System.Collections;

.RemoveAt(0)删除第一个元素

.Add(0)在末尾添加0

.Insert(1,5)在索引值为1处插入5

.Clear()清除现有所有元素

char[] aChar = { 'a','b','c','d','e'};

ArrayList alist = new ArrayList();
foreach (var a in aChar)
{
    alist.Add(a);
}
foreach (var al in alist)
{
    Console.WriteLine(al);
}

Object是任何数据类型的父类,是属性于引用类型的。

alist.Add(Object); int 会有装箱操作,消耗时间,性能会受影响。为了解决此种情况就有了泛型,也叫object的泛型写法。.

根据需求去变化 int string arrary object datatable 是可以放到arrarylist里

泛型

只添加一种数据类型

System.Collections;

也有添加、删除、修改的操作。

List<int> list=new List<int>();
int[] aNumber={1,2,3};
foreach(var a in aNumber)
{
    list.Add(a);
}
foreach (var al in list)
{
    Console.WriteLine(al);
}

List<string> alist=new List<string>();

当对数组进行非常频繁的操作,顺序就会有些乱,要精确定到某一个具体的值就需要用到Hashtable

HashTable

key value 方式存储的,可以进行精确定位。

Hashtable ht = new Hashtable();
ht.Add("key1", "aaa");
ht.Add("key2", "bbb");
foreach (var key in ht.Keys)
{
    Console.WriteLine(ht[key]);
}

HashTable存储的也是Object类型的数据,会有频繁的进行装箱操作。所以有了Dictionary,也叫

HashTable的泛型写法。

Dictionary

只添加一种数据类型

Dictionary<string, string> dt = new Dictionary<string, string>();
dt.Add("key1", "aaa");
dt.Add("key2","bbb");
foreach (var key in dt.Keys)
{
    Console.WriteLine(dt[key]);
}

都需要掌握,不要停留概念上。

面向对象的三大特征

封装

 

对于一个类,默认的访问修饰符是internal

方法、变量的默认访问修饰符是private

连接字符串 是private  核心

原文地址:https://www.cnblogs.com/16lily521/p/4930542.html