版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
DEV342
VisualBasic2005:
应用程序框架
和高级语言特性施凡微软VisualBasicMV听起来很熟悉?创建一个组件,可以将事件日志记录到多个事件源创建ini文件或进行复杂的注册表操作保存用户设置一遍又一遍地编写用户身份验证的代码创建强类型的集合包装类型在网上搜索各种代码片断,然后粘贴到你的程序里
抱怨窗体设计器生成的代码与自己的代码混在一起提纲在一个新起点上架构您的应用程序自定义用户身份验证
使用配置信息使用应用程序日志自定义IDE的使用体验
插入代码段或扩展代码段库自定义项目和项目元素模板语言新特性泛型编译器警告附属类型其它语言特性自定义用户身份验证My命名空间层次图—应用程序标题、版本、日志、描述信息…—注册表、音频、
文件系统、网络、鼠标…—用户名、用户组、
域…—访问应用程序的资源:字符串、图标、图片……—用户和应用程序配置信息—项目中的窗体—项目引用的Web服务配置信息和用户设置
你现在用的方法……用App.config
保存XML格式的配置信息某些情况下,读写XML很痛苦用Framework中的类可以读取配置信息但是不能修改和写入可扩展以支持更多功能方法还算直观,但也不是特别简单Framework类库支持配置信息的读写配置信息的强类型验证有智能感知的帮助
支持应用程序级或用户级分别设置
在部分信任级别下工作可扩展的Provider和验证模式客户端和Web共享同一基础框架可从项目设计器窗口轻松访问对各种专用配置提供支持连接字符串,Web服务代理类等.配置信息和用户设置
我们现在提供的方法……
配置系统的架构SettingsBaseApplicationSettingsBaseWindowsApp1SettingsMySettingsProviderInterface本地设置远程自定义SQLAccess自定义实战设置功能应用程序级设置用户级设置Myapp.exe.config<applicationSettings>…</applicationSettings>fred.configethel.configgladys.config<userSettings>…</userSettings>My命名空间层次图—应用程序标题、版本、日志、描述信息…—注册表、音频、
文件系统、网络、鼠标…—用户名、用户组、
域…—访问应用程序的资源:字符串、图标、图片……
—用户和应用程序配置信息—项目中的窗体—项目引用的Web服务处理验证事件实战设置功能载入My.Settings.UseHighQuality=True
‘Settings在第一次访问的时候自动载入配置数据PrivateSubSettings_SettingChanging(ByValsenderAs
Object,_
ByValeAsSettingsArg)Handles
MyBase.SettingChanging
Ife.SettingName=“SignatureFile”Then
IfNotMy.Computer.FileSystem.FileExists(e.Setting.Value)Then
‘取消该事件EndIfEndIfEndSubMy.Settings.UseHighQuality=True
My.Settings.Save()保存使用设置功能使用应用程序事件日志可扩展代码段库已内置超过500个代码段!包含多种接口实现和常见设计模式提供标准框架便于自行编写代码段可配置右键菜单的菜单项多个代码段存放路径已结合在各种第三方工具中Refactor!、CodeWise、等等
网上还有代码段编辑器可创建或编辑代码段编写自定义代码段语言新特性Using语句Continue语句Global关键字访问器可见性修饰附属类型无符号整数运算符重载泛型编译器警告Using语句
Acquire,Execute,Release一种而正确释放对象资源的快速写法
比使用Try、Catch、Finally更易读与Dispose-Finalize模式配套使用‘Using语句块正确处置对象资源UsingfStrAsNewFileStream(path,FileMode.Append)
ForiAsInteger=0TofStr.LengthfStr.ReadByte()Next‘到达块尾部时,文件流自动被关闭EndUsingContinue语句
直接跳到下一次循环让循环逻辑更清楚
ForjAsInteger=0to5000Whilematrix(j)IsNotthisValueIfmatrix(j)IsthatValue ‘直接跳到下一个j ContinueFor EndIf
Graph(j)EndWhileNextjGlobal关键字
访问根(全局)命名空间解决命名冲突问题
代码生成器的更佳选择NamespaceHeadTraxClassForm1 InheritsWindows.Forms.Forms
SubLastName(nmAsString)Global.Microsoft.VisualBasic.Left(nm)EndSub
EndClassEndNamespace访问器可见性修饰符
让Get和Set有不同的可见性让所有对字段的访问都经过get和set让字段赋值获得更好的验证PropertySalary()AsIntegerGet ReturnmSalaryEndGetPrivateSet(valueAsInteger) Ifvalue<0Then ThrowNewException(“错误”) EndIfEndSetEndProperty附属类型(PartialTypes)
同一类型,不同文件设计器生成的代码可以分到另外一个文件将来……PublicClassForm1InheritsWindows.Forms.Form ‘你的代码EndClassPartialClassForm1 ‘设计器的代码 SubInitializeComponent() ‘控件初始化 EndSubEndClass运算符重载
创建简洁的使用方式ClassAddrPrivatemStringAsStringPropertyValue()AsStringGetReturnmStringEndGetSet(valueAsString)IfValid(value)Then
mString=valueEndIfEndSetSharedOperator&(ad1AsAddr,ad2AsAddr)AsAddrReturnNewAddr(ad1.Value&ad2.Value)EndOperatorEndClass
无符号整型
现已全面支持完全由平台提供主要用于WindowsAPI调用和交互DimsbAsSByte=-4‘这个是Byte的有符号版本DimusAsUShortDimuiAsUIntegerDimulAsULong‘
VisualBasic
的内置函数现已完全支持IfIsNumeric(uInt)Then ‘返回TrueEndIfPublicClassArrayListPrivateelements()AsObjectPrivatemCountAsIntegerPublicSubAdd(elementAsObject)If(mCount=elements.Length)Then_
Resize(mCount*2)
mCount+=1
elements(mCount)=elementEndSubDefaultPublicPropertyIndexer(indexAsInteger)AsObjectGet:Returnelements(index):EndGetSet:elements(index)=value:EndSetEndPropertyPublicPropertyCount()AsIntegerGet:ReturnmCount:EndGetEndPropertyEndClassDimintListAsNewArrayList()intList.Add(1) ‘参数被装箱intList.Add(2)‘参数被装箱intList.Add(“Three”)‘错误,但运行时才能发现DimiAsInteger=CInt(intList(0))‘类型转换PublicClassList(Of
TItem)Privateelements()AsTItemPrivatecountAsIntegerPublicSubAdd(elementAsTItem)If(count=elements.Length)Then_
Resize(count*2)count+=1
elements(count)=elementEndSubDefaultPublicPropertyIndexer(indexAsInteger)AsTItemGet:Returnelements(index):EndGetSet:elements(index)=value:EndSetEndPropertyPublicPropertyCountAsIntegerGet:Returncount:EndGetEndPropertyEndClass泛型DimintListAsNewList(OfInteger)intList.Add(1)‘没有装箱intList.Add(2)‘没有装箱intList.Add(“Three”)‘编译错误DimiAsInteger=intList(0)‘没有类型转换泛型编译时检查消除运行时错误提高性能防止装箱和类型转换代码重用方便创建强类型集合用于构建Framework中常见的数据结构Dictionary、Queue、List、Stack等等.VisualBasic编译器警告
对运行时行为的前期警告交叠的Catch块或Case语句递归属性访问未使用的Imports语句未使用的本地变量函数或运算符重载过程未返回值引用类型上可能的空引用分解OptionStrict后期绑定隐式类型转换等等BackgroundWorkerStructureBackgroundArgsDimarg1AsIntegerDimarg2AsStringEndStructurePrivateSubButton1_Click(…)HandlesButton1.ClickDimargsAsBackgrou
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 主动脉夹层应急演练工作总结(2篇)
- 星级酒店市场营销部年工作总结年工作计划(2篇)
- 安全漫画解读讲解
- 运动控糖健康指导手册
- 工地生活区消防安全通知
- 2026年招股说明书撰写能力测试题集
- 音像技术职业发展规划
- 2026年实验室职业健康安全知识培训
- 安全生产验收规范讲解
- 施工会计及基础 1
- (2025年)社会工作考试试题及答案
- DB11-T 513-2025 绿色施工管理规程
- 2025四川泸州交通物流集团有限公司及下属公司招聘12人笔试参考题库附带答案详解
- 危险作业审批培训
- (正式版)DB54∕T 0428-2025 《“一河(湖)一策”方案编制规程》
- 地贫防控知识培训课件
- GB/T 26941-2025隔离栅
- 人工智能概论课程教学大纲
- 2025年江西省中级档案职称考试(档案事业概论)经典试题及答案
- 新疆公务员面试题目及答案
- 物理与现代军事科技
评论
0/150
提交评论