当前位置: 首页 > news >正文

C# with 关键字

vb(vb.net) 的with关键字,不仅仅是减少代码冗余,对结构化和作用域以及编译器代码优化有很大的关系。

关于代码冗余,这个不用说,意义也不是很大。

但对于结构化、作用域和编译器优化,可以简单的举例进行解释:

例如程序中有两个PictureBox 对象

 

如果没有with语句,大家可能这么写:

PictureBox pbA = new PictureBox();

PictureBox.pbB = new PictureBox();

pbA.Width = 3;

pbB.Width = 3;

pbA.Height= 4;

pbB.Height= 4;

pbA.Image = ...;

pbA.Image = ...;

这样代码就有些松散。

使用with语句,会自觉的优化如下:

with pbA = new PictureBox();

{.Width = 3;

.Height=4;

.临时的局部变量...

.Image = ...;}

这样对pbA的处理语句,都会连到一块,结构更加紧凑,程序运行时,CPU集中处理某一个对象,不用频繁的来回切换,对优化有一定的帮助。

同时对于编译来说,由于with是个代码块,里面定义的局部变量的可见性被限制在{},提高了程序安全性。其实对于复杂的、类似的业务逻辑,我们也经常自己故意加个{},防止里面的变量与外面的串起来,招惹是非。

本人很是建议在C#中添加这个表面上看是鸡肋,实际体贴贴心心动的 with 关键字。

 

 

 

 

 

转载于:https://www.cnblogs.com/xiexiaokui/archive/2010/03/16/1687260.html

相关文章:

  • android模拟器环境选择媒体文件,解决No media found (转)
  • 可能改变世界的13个“终结”(上)
  • UiModeManager设置夜间模式和行车模式
  • 一分钟可以用来做什么?
  • 学习pytorch
  • Vue 上传图片压缩 的问题
  • poj2864
  • The following IP can be used to access Google website
  • 配置文件结构
  • 当 IDENTITY_INSERT 设置为 OFF 时,不能为表中的标识列插入显式值
  • 乱七八糟记一下乱七八糟的碎片化知识
  • 虚拟内存可以取消吗
  • js中bind、call、apply函数的用法
  • iBatis把一个表的sqlmap配置的多个xml中。
  • 先舍后得
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • 「译」Node.js Streams 基础
  • 【Linux系统编程】快速查找errno错误码信息
  • Babel配置的不完全指南
  • Flannel解读
  • LeetCode算法系列_0891_子序列宽度之和
  • Unix命令
  • XForms - 更强大的Form
  • 不上全站https的网站你们就等着被恶心死吧
  • 大型网站性能监测、分析与优化常见问题QA
  • 第十八天-企业应用架构模式-基本模式
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 服务器之间,相同帐号,实现免密钥登录
  • 关于字符编码你应该知道的事情
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 悄悄地说一个bug
  • 推荐一个React的管理后台框架
  • Android开发者必备:推荐一款助力开发的开源APP
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • !$boo在php中什么意思,php前戏
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • (¥1011)-(一千零一拾一元整)输出
  • (2)STM32单片机上位机
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (二)Eureka服务搭建,服务注册,服务发现
  • (二)springcloud实战之config配置中心
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (三)终结任务
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)Oracle 9i 数据库设计指引全集(1)
  • (转)大道至简,职场上做人做事做管理
  • .Net core 6.0 升8.0
  • .Net IOC框架入门之一 Unity
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .NET 依赖注入和配置系统
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .NET/C# 使窗口永不获得焦点
  • .NET6 开发一个检查某些状态持续多长时间的类