3.1 字符串处理方法
大写的String 是一个类
string
string,msdn给出的解释就是,string 是C#中的关键字,并且是引用类型, string 类型表示零或更多 Unicode 字符组成的序列。string 是 .NET Framework 中 String 的别名。但定义相等运算符(== 和 !=)是为了比较 string 对象(而不是引用)的值(后面给出示例解释这点)。
String:
String是类,表示文本,即一系列 Unicode 字符。String 对象是不可改变的。每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。如:当我们实例化一个String的对象后,在内存中为此对象分配一个空间。如下:String str = “hello”;当我们修改str的值的时候,如:str = “hello world”;此时,系统会为str重新分配一个空间。这样原来的内存空间就被浪费掉了,只能等待垃圾回收器回收。在需要对字符串执行重复修改的情况下,与创建新的 String对象相关的系统开销可能会非常昂贵。
String与string的区别:
string 是 .NET Framework 中 String 的别名,string是C#基元类型(primitive),简单来说就是编译器直接支持的数据类型。基元类型要直接映射到Framework类库(FCL)中的类型,例如,C#中一个基元类型int直接映射到System.Int32类型,这里int是基元类型,System.Int32是FCL类型。而String是FCL类型的,所以在C#的编译时,会自动的把string转化为System.String。所以string与String实质上没什么区别,只是在使用string要做一次转换,转换为String。因此,在编码时我们推荐使用String。
string虽然为引用类型,但是(== 和 !=)是为了比较 string 对象(而不是引用)的值。
若要@后面的
可以用substring 和 index of 一起
index of 返回@所在索引(位置)
后面的位置=总长度-index of -1
string 的format()方法:
format()方法允许把字符串,数字或布尔型的变量插入到格式字符串中。
❤
3.2 类的静态成员
3.3 异常处理
编译错误可以通过集成开发环境vs发现
逻辑错误可以通过调试程序,对比期望值和实际值发现
try尝试 catch 抓(括号里是错误类型)<下标越界>
finally 最终的 百分百绝对执行
catch(exception e){
Console.WriteLine("加载产品列表时出现异常,请联系管理员!\n原因:"+ex.Message);
}
3.4 DBHelper 类
DB=database 数据库帮助者
InitConnection() : 初始化连接,创建并打开连接
GetDataReader():查询数据,获得datareader 对象
executenonquery():执行增删改
executescalar():执行聚合函数
DBHelper类↓
class DBHelper
{//数据库连接字符串
public static string ConnString = "server=.;database=3CDB;intagrated security=true";
//数据库连接对象
public static SqlConnection Conn = null;
//初始化数据库连接
public static void lnitConnection()
{
//如果连接对象不存在,则创建连接
if (Conn == null)
Conn = new SqlConnection(ConnString);
//如果连接对象关闭,则打开连接
if (Conn.State == ConnectionState.Closed)
Conn.Open();
//如果连接中断,则重启连接
if (Conn.State == ConnectionState.Broken)
{
Conn.Close();
Conn.Open();
}
}
//查询,获取DataReader
public static SqlDataReader GetDataReader(string sqlStr)
{
lnitConnection();
SqlCommand cmd = new SqlCommand(sqlStr, Conn);
//CommandBehavior.CloseConnection命令行为:当DataReader对象被关闭时,自动关闭
//占用的连接对象
return cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
//增、删、改操作
public static bool ExecuteNonQuery(string sqlStr)
{
lnitConnection();
SqlCommand cmd = new SqlCommand(sqlStr, Conn);
int result = cmd.ExecuteNonQuery();
Conn.Close();
return result > 0;
}
//执行集合函数
public static object ExecuteScalar(string sqlStr)
{
lnitConnection();
SqlCommand cmd = new SqlCommand(sqlStr, Conn);
object result = cmd.ExecuteScalar();
Conn.Close();
return result;
}
}