广州网站建造集团官网 老直营威尼斯网址开户
老品牌威尼斯网址开户 吾们 效劳 网站建造 移动应用 案例 报道 联系
咨询热线:13711534025

期待聆听您的声音

13711534025

不忽悠,不作恶,不欺诈;敬天理,存良知,思利他。
QQ咨询 QQ咨询 QQ咨询
广州总部 深圳 佛山 广西

与吾们一起分享美好

.Net开发的两个小技巧

发布时间:2017-06-13 发布作者:老直营威尼斯网址开户 查阅次数:1900次 标签:广州网站建造 广州网站建造集团官网

.Net开发的两个小技巧



一、@符号的妙用


1、可以作为保留关键字的标识符


C#规范当中,不允许使用保留关键字(class、bool等)当作普通的标识符来命名,这时候@符号感化就体现


出来了,可以通过@符号上缀把这些保留关键字可以当作普通的字符使用。


譬喻:


string @class="hello";  //是正确的


string class="hello";   //报错

 


2、@符号可以表示跨行字符串


譬喻:


string str=@"hello


             world


 !"; //这样写是正确的

 


3、字符串转义字符


很多时候程序中出现目录的时候会有“\”,字符表示转义字符,要表示普通字符的时候需要写成“\\”,当这样字符过多的时候写起来不是很简洁,这时候可以使用@字符。


譬喻:


string path="d:\\Data\\web\\ss.txt";//一般写法


string path=@"d:\Data\web\ss.txt";//使用@符号

 


二、using的用法


1、using 指令


用来引入命名容量,譬喻:using System;


2、为命名容量或类型创建别名


 using引入命名容量,并不等于编译器编译时加载该命名容量所在的程序集,程序集的加载决定于程序中对该程序集是否存在调用操作,


 如果代码中不存在尽数调用操作则编译器将不会加载using引入命名容量所在程序集。


 创建别名的另一个要紧的原因在于同一文件中引入的不同命名容量中包括了同样名称的类型,


  诸如SharpMap.Geometries.Point与System.Drawing.Point。为了避免出现名称冲突,可以通过设定别名来解决:


 using SGPoint = SharpMap.Geometries.Point;


 using SDPoint = System.Drawing.Point;

 


 尽管吾们可以通过类型全名称来加以区分,但是这显然不是最佳的解决Plan。用using指令创建别名,


 有效的解决了这种可能的命名冲突,才是最佳的解决Plan。


 3、using语句


 using 语句允许程序员指定使用资源的对象应当何时释放资源。using 语句中使用的对象必须实现 IDisposable 接口。


 IDisposable接口供给了 Dispose 方法,该方法将释放此对象的资源。


  诸如:


 


复制代码

 using(TextReader reader=new StreamReader(filename))


{


  string line;


  whil((line=read.ReadLine())!=null)


  {


     Console.WriteLine(line);


  }


}

复制代码

 


 


等价于以下形式:


复制代码

{


 TextReader reader=new StreamReader(filename);


 try


 {


  string line;


  while((line=read.ReadLine())!=null)


   {


     Console.WriteLine(line);


   }


 }


 finally


  {


    if(reader!=null)


    {


       (IDisposible)reader.Dispose();


    }


   }


}

复制代码

 


4、使用规则


1、using只能用于实现了IDisposable接口的类型,禁止为不支持IDisposable接口的类型使用using语句,否则会出现编译错误;


2、using语句适用于清理单个非托管资源的环境,而多个非托管对象的清理最好以try-finnaly来实现,


因为嵌套的using语句可能存在隐藏的Bug。内层using块引发异常时,将不能释放外层using块的对象资源;


3、using语句支持初始化多个变量,但上提是这些变量的类型必须同样, 诸如:


复制代码

using(Pen p1 = new Pen(Brushes.Black), p2 = new Pen(Brushes.Blue))


{


      //todo


}

复制代码

 


4、针对初始化对个不同类型的变量时,可以都声明为IDisposable类型, 诸如:


复制代码

 using (IDisposable font = new Font("Verdana", 12), pen = new Pen(Brushes.Black))


{


   float size = (font as Font).Size;


   Brush brush = (pen as Pen).Brush;


}

复制代码

公众号:原文


社区或社群的典型运营地址和逻辑解析

再谈软件测试人员的发展方向

吾们的地位

广州 广州市天河区岗顶百脑汇高技术大厦B塔27楼 020-6235 2949

深圳 深圳市南山区汉京万国大厦18A 159 8916 9178

广西 茂名市茂南区油城三路广西创业创新孵化基地B110 159 8916 9178

吾们的效劳

网站及移动应用 牛逼直营网站 APP开发 小程序开发 WeChat运营

系统应用开发 OA/ERP/CRM/HR系统开发 教学管理系统 电商系统 应用型软件系统定制开发

了解吾们

集团官网简介 联系吾们 吾们的案例 讯息报道

使用条款 隐私声明 Cookies

© 2009-2020 老直营威尼斯网址开户 版权一切 广ICP备16051058号

XML 地图 | Sitemap 地图