using的基本用法
1、using指令。using + 命名空间名字,这样可以在程序中直接用命令空间中的类型,而不必指定类型的详细命名空间,类似于Java的import、C++的<#Include>,这个功能也是最常用的,几乎每个cs的程序都会用到。
例如:using System; 一般都会出现在*.cs中。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Data.SqlClient; using System.Configuration; using System.Web.Configuration;
View Code
2、using别名。using + 别名 = 包括详细命名空间信息的具体的类型。
这种做法有个好处就是当同一个cs引用了两个不同的命名空间,但两个命名空间都包括了一个相同名字的类型的时候。当需要用到这个类型的时候,就每个地方都要用详细命名空间的办法来区分这些相同名字的类型。而用别名的方法会更简洁,用到哪个类就给哪个类做别名声明就可以了。注意:并不是说两个名字重复,给其中一个用了别名,另外一个就不需要用别名了,如果两个都要使用,则两个都需要用using来定义别名的。
using aClass = NameSpace1.MyClass; using bClass = NameSpace2.MyClass;
View Code
3、using和SqlConnection、SqlCommand、SqlDataAdapter
用法:将功能代码单独包装起来,结束时自动释放托管的资源
版本1,未使用using:
/// <summary>/// 返回数据集dt/// </summary>/// <param name="database"></param>/// <param name="cmdType"></param>/// <param name="sql"></param>/// <param name="pars"></param>/// <returns></returns>private static DataTable GetDataTable(String database, CommandType cmdType, String sql, SqlParameter[] pars){if (String.IsNullOrEmpty(database)){ throw new Exception("未设置参数:database"); }else if (String.IsNullOrEmpty(sql)){ throw new Exception("未找到sql语句"); }try{SqlConnection conn = GetConnection(database);conn.Open();SqlCommand cmd = GetCommand(conn, null, cmdType, sql, pars);SqlDataAdapter myda = new SqlDataAdapter(cmd);DataTable dt = new DataTable();myda.Fill(dt);myda.Dispose();cmd.Dispose();conn.Close();return dt;}catch (SqlException sqlex){System.Text.StringBuilder log = new StringBuilder();log.Append("查询数据出错:");log.Append(sqlex.Message);throw new Exception(log.ToString());}}
View Code
版本2,使用using:
/// <summary>/// 返回数据集dt/// </summary>/// <param name="database"></param>/// <param name="cmdType"></param>/// <param name="sql"></param>/// <param name="pars"></param>/// <returns></returns>private static DataTable GetDataTable(String database, CommandType cmdType, String sql, SqlParameter[] pars){if (String.IsNullOrEmpty(database)){ throw new Exception("未设置参数:database"); }else if (String.IsNullOrEmpty(sql)){ throw new Exception("未找到sql语句");}try{using(SqlConnection conn = GetConnection(database)){conn.Open();using(SqlCommand cmd = GetCommand(conn,null,cmdType,sql,pars)){using(SqlDataAdapter da = new SqlDataAdapter(cmd)){DataTable dt = new DataTable();da.Fill(dt);return dt;}}}}catch (SqlException sqlex){System.Text.StringBuilder log = new StringBuilder();log.Append("查询数据出错:");log.Append(sqlex.Message);throw new Exception(log.ToString());}}
View Code
using相当于语句块:
SqlConnection conn = null;try{conn = new SqlConnection();} catch{} finally{if (conn != null){conn.Dispose(); };SqlCommand cmd = null;try{cmd = new SqlCommand();} catch{} finally{if(cmd != null) { cmd.Dispose(); };SqlDataAdapter myda = null;try{myda = new SqlDataAdapter();} catch{} finally{if (myda != null){myda.Dispose(); };
View Code
转载于:https://www.cnblogs.com/su1643/p/6655904.html
using的基本用法相关推荐
- c语言中external,static关键字用法
static用法: 在C中,static主要定义全局静态变量.定义局部静态变量.定义静态函数. 1.定义全局静态变量:在全局变量前面加上关键字static,该全局变量变成了全局静态变量.全局静态变量有 ...
- Pandas_transform的用法
先来看一个实例问题. 如下销售数据中展现了三笔订单,每笔订单买了多种商品,求每种商品销售额占该笔订单总金额的比例.例如第一条数据的最终结果为:235.83 / (235.83+232.32+107.9 ...
- Python中yield和yield from的用法
yield 后面接的是 future 对象 调用方 委托生成器 yield from 直接给出循环后的结果 yield from 委托者和子生成器直接通信 yield from 直接处理stopIte ...
- pytorch学习 中 torch.squeeze() 和torch.unsqueeze()的用法
squeeze的用法主要就是对数据的维度进行压缩或者解压. 先看torch.squeeze() 这个函数主要对数据的维度进行压缩,去掉维数为1的的维度,比如是一行或者一列这种,一个一行三列(1,3)的 ...
- python yield 和 yield from用法总结
#例1. 简单输出斐波那契數列前 N 个数 #缺点:该函数可复用性较差,因为 fab 函数返回 None,其他函数无法获得该函数生成的数列 #要提高 fab 函数的可复用性,最好不要直接打印出数列,而 ...
- tf.nn.embedding_lookup()的用法
函数: tf.nn.embedding_lookup( params, ids, partition_strategy='mod', name=None, validate_indices=True, ...
- OpenMP用法大全
OpenMP基本概念 OpenMP是一种用于共享内存并行系统的多线程程序设计方案,支持的编程语言包括C.C++和Fortran.OpenMP提供了对并行算法的高层抽象描述,特别适合在多核CPU机器上的 ...
- Dorado用法与示例
Dorado用法与示例 dorado用后总结 一.dorado概念 dorado的产品全名是"dorado展现中间件".从产品形态上dorado由两部分组成,第一部分是一个具有AJ ...
- TensorFlow用法
TensorFlow用法 什么是TensorFlow TensorFlow是一个开源软件库,用于使用数据流图进行数值计算.图中的节点表示数学运算,而图的边缘表示流动的多维数据数组(张量).这种灵活的体 ...
- TensorFlow Keras API用法
TensorFlow Keras API用法 Keras 是与 TensorFlow 一起使用的更高级别的作为后端的 API.添加层就像添加一行代码一样简单.在模型架构之后,使用一行代码,可以编译和拟 ...
最新文章
- 自监督3D手部姿态估计方法
- 一文概览 CVPR2021 最新18篇 Oral 论文
- [Google API](1)简介
- 中国大陆穷光蛋排行榜---转
- 【计算机网络】——流量控制与可靠传输机制
- .net 实现微信公众平台的用户信息获取
- 简要分析unity3d中剪不断理还乱的yield
- 蓝桥杯 ALGO-28 算法训练 星际交流
- BZOJ 3555 [CTSC2014] 企鹅QQ Hash
- 42表盘直径是从哪测量_爱彼15703和15710区别在哪?背透和密底哪个更好?
- 基于MATLAB 关于圆的研究
- eclipse 配置maven tomcat 环境
- sqlmap入门使用教程
- 如何在Linux Shell脚本中添加GUI
- python ipad协议_python – 实现AirDrop协议
- unrecognized selector sent to instance 0x7fbb51c7c490问题解决方法之一
- java对pdf分割_Java如何使用Java将PDF分割成多个文档?
- 产品经理必读的十本好书
- python多线程批量过滤文件关键字
- Ubtun16.04 配置baxter机器人
热门文章
- axios请求拦截器错误_React中使用高阶组件和axios的拦截器,统一处理请求失败提示...
- 安卓手机管理软件_日程管理软件哪个好?
- redis desktop manager 集群_Redis Manager(2.0) —— Redis 运维利器
- php query builder,php – Symfony2 – Doctrine2 QueryBuilder WHERE I...
- php 中文名称排序 源码,四种排序算法PHP实现类
- java 置位_java安全编码指南之:Mutability可变性详解
- lenovo电脑_办公笔记本电脑有哪些值得推荐?
- Git——比较版本区别【git status / git diff】
- Windows下VB6.0开发——VB程序断点调试与顺序执行不一致问题(通信原因)
- 基于Hadoop集群的Spark集群搭建