using三种用法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了using三种用法相关的知识,希望对你有一定的参考价值。
转(http://blog.sina.com.cn/s/blog_586b6c0501000ax3.html)
1. using指令。using + 命名空间名字,这样可以在程序中直接用命令空间中的类型,而不必指定类型的详细命名空间,类似于Java的import,这个功能也是最常用的,几乎每个cs的程序都会用到。
例如:using System; 一般都会出现在*.cs中。
2.using别名。using + 别名 = 包括详细命名空间信息的具体的类型。
这种做法有个好处就是当同一个cs引用了两个不同的命名空间,但两个命名空间都包括了一个相同名字的类型的时候。当需要用到这个类型的时候,就每个地方都要用详细命名空间的办法来区分这些相同名字的类型。而用别名的方法会更简洁,用到哪个类就给哪个类做别名声明就可以了。注意:并不是说两个名字重复,给其中一个用了别名,另外一个就不需要用别名了,如果两个都要使用,则两个都需要用using来定义别名的。
例如:
namespace Test.namespace2 { class MyClass { public override string ToString() { return "You are in NameSpace2"; } } } namespace Test.namespace1 { class MyClass { public override string ToString() { return "You are in NameSpace1"; } } } using myclass1=Test.namespace1; using myclass2=Test.namespace2; namespace Test { class Program { static void Main(string[] args) { myclass1.MyClass m = new myclass1.MyClass(); Console.WriteLine(m); myclass2.MyClass m2 = new myclass2.MyClass(); Console.WriteLine(m2); Console.ReadLine(); } } }
3.using语句,定义一个范围,在范围结束时处理对象。
场景:
当在某个代码段中使用了类的实例,而希望无论因为什么原因,只要离开了这个代码段就自动调用这个类实例的Dispose。要达到这样的目的,用try...catch来捕捉异常也是可以的,但用using也很方便。
/// <summary> /// sqlite数据库增删改操作 /// </summary> /// <param name="sql">执行增删改的语句</param> /// <param name="parameters">执行增删改语句所需要的参数,参数必须以他们在sql语句中的顺序为准</param> public int executeNonQuery(String sql,SQLiteParameter[] parameters) { int affectedRows = 0; using(SQLiteConnection connection=new SQLiteConnection(connectionString)){ connection.Open(); using(DbTransaction transaction=connection.BeginTransaction()){ using(SQLiteCommand cmd=new SQLiteCommand(connection)){ cmd.CommandText = sql; if(parameters!=null){ cmd.Parameters.AddRange(parameters); } affectedRows = cmd.ExecuteNonQuery(); } transaction.Commit(); } } return affectedRows; }
以上是关于using三种用法的主要内容,如果未能解决你的问题,请参考以下文章