文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>C#复习笔记(二)

C#复习笔记(二)

时间:2010-10-08  来源:SkyPurple

结束于 异常处理 未听讲

异常:是当程序发生错误时产生的一种信号
    每种异常的类型都是一个类
    两种大分类:
System.SystemException  System-definde exception 系统异常
System.ApplicationException user-defined exception 用户自定义异常
当程序产生一个异常的时候, 它会自动抛出异常,此时,.net进入"异常处理模式"
空的catch段相当于给异常放行,想要让异常处理继续,需要在catch里面写具体的方法

在进行完catch子句后,程序将继续进行。
除非在catch子句中有return throw 或者System.Enviroment.Exit(1);
跟踪:Tracing
最常用的方法是在.net config中配置
<appSettings>
    <add key="Tracing" value="true"/>
</appSettings>
跟踪执行:实例
using T = system.Diagnostics.Trace;
public class DataAccess
{
  .......
  public void open()
   {
    try{
        T.WriteLineIf(Globals.Trace,"DataAccess.Open():");
        T.Indent();
        T.WriteLineIf(Globals.Trace,"Connection string=....");
        ......
          }
    catch(Exception ex)
    {
        T.WriteLineIf(Globals.Trace,ex.GetType()+":"+ex.Message);
        T.WriteLineIf(Globals.Trace,ex.StackTrace);
        .....    
    }
    finally{
        T.Unindent();
        T.Flush();
    }
    }
}

事件处理总结:
可以“多对一”进行事件处理
:不同的事件可以对应到相同的处理程序
可以“一对多”进行事件处理
:一个事件可以触发多个动作(事件处理器映射)

Transacation--事务
Command对象的BeginTransaction来创建一个Transacation对象
例子:
SQLSqlTransacation txn = dbConn.BeginTransacation();
string strSQL = "Insert into Customers
VALUES(100,'xx','xxx',10000,1000)";
SQLSqlCommand dbCmd = new SQLSqlCommand(strSQL,dbConn,txn);
int intRecord = dbCmd.excetuteNonQuery();
if(intRecord == 1)
{
    MessageBox.Show("Update SuccessFul");
    txn.Commit();
}
else
{
    MessageBox.Show("Update Failed");
    txn.Rollback();
}
解释:
当数据库操作返回数据正确或者无异常时候,才提交数据,txn.Commit();
此时才是真正的插入到数据库中。
当数据库操作返回数据不正确或者有异常时,回滚数据,txn.Rollback();
此时中断所有操作,并且把在事务中的所有操作取消回滚。。

C#代码中使用正则:
模式:^表示开始,?可选,$结束
using RE = System.Text.RegularExpressions.Regex;
public class Validation
{
    public static bool isUSZipcode(string s)
    {
        string pattern;
        pattern = @"^(\d{5})((\-\d{4})?)$";//正则用字符串表示
        return RE.Match(s,pattern).Success;//调用正则类的Match方法来验证
                    传入的s是否符合正则,返回true或false
    }
}


防止SQL输入攻击:对于文本框的输入,必须把单引号转换成双引号
(说明:因为SQL语句会把单引号的内容当成一个值)


组件开发 .dll文件
使用internal关键字来限制访问,任何被标识为internal的代码只能被组件内部访问
在类库中的Assembly中(程序集)信息中能控制组件的版本
强命名(Strong name)
Assembly 在.NET的命名有四部分
DataComponent,
Culture=neutral,
version=1.0.0.0,
publickeyToken=1231435465
Assembly如果有公钥token,那么它有强命名,这表示它被私钥数字签名过。
强命名的好处:
安全性,组件无法篡改
组件的多个版本可以共存!
应用程序可以使用它建立时的组件版本,而不是第一个找到的DLL。
创建强命名组件的步骤:
1。生成一组public - private key pair
2。将其通过Assemblyinfo.cs的属性应用到组件中
3。重新编译assembly
3。重新编译客户端
使用SN命令行用法。。
SN.exe -k pubpriv.key 生成

延迟签名:AssemblyDelaySign(true)
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载