永发信息网

如何将Option Strict的设置保持为On(Add

答案:3  悬赏:0  手机版
解决时间 2021-01-26 19:38
如何将Option Strict的设置保持为On(Add
最佳答案
可能很多程序员都会认同Dan的观点-- 在VB.NET实现中,将Option Strict off设置成缺省状态是Mircosoft一大错举。但事实上你不必非得按照Microsoft的这一设定。在以下这个技巧中,我会介绍如何建立一个自动将Option Strict设置为On的add-in方法(用这个方法你可能都会忘记如何使用手动添加了)。
第一步是通过使用Add-in Wizard来建立一个新的Visual Studio add-in 项目,并将其命名为VBOptionStrictOn。当向导建好了这个add-in 并打开了Connect.vb模块的代码窗口之后,你可以在这个Connect类中声明两个类级(class-level) 变量。你需要将向导定义的这两个变量:Dim applicationObject As EnvDTE.DTE
Dim addInInstance as EnvDTE.AddIn
用以下两个变量声明来取代:Private _app As EnvDTE.DTE
Private WithEvents _SolutionEvents As SolutionEvents
接下来,在public OnConnection 的事件处理(event handler)中将向导生成的代码:applicationObject = CType(application, EnvDTE.DTE)
addInInstance = CType(addInInst, EnvDTE.AddIn)
用以下两个给变量赋值的语句来取代:_app = CType(application, EnvDTE.DTE)
_SolutionEvents = _app.Events.SolutionEvents
然后,在Solution Explorer中选择VBOptionStrictOn项目,并通过在Add Reference 对话框的.NET tab里选择VSLangProj assembly来添加一个reference。同时,在Connect.vb模块的代码顶部加上Imports VSLangProj语句。 VSLangProj assembly提供了名为prjOptionStrict的列举(enumeration),其中包含OptionStrict的可能值(On, Off)。
现在你可以开始将Option Strict设置成On了。整个add-in 过程包括四个加入到Connect类的小的VB.NET子过程。add-in过程不需要用户进行干涉因而无需使用用户界面。前两个过程是同一个方法的重载(overload):Public Sub SetOptionStrictOn()
Dim proj As Project
''' Check and set OptionStrict for each project in
''' the open solution by calling an overloaded
''' version of this sub.
For Each proj In CType(_app.GetObject("VBProjects") _
, Projects)
Call SetOptionStrictOn(proj)NextEnd SubPublic Sub SetOptionStrictOn(ByRef proj As Project)
Dim propOptionStrict As [Property]With projpropOptionStrict = _
.Properties.Item("OptionStrict")
If CType(propOptionStrict.Value, _
prjOptionStrict) <> _
prjOptionStrict.prjOptionStrictOn Then
''' Set OptionStrict = "On".
propOptionStrict.Value = _
prjOptionStrict.prjOptionStrictOn
全部回答
”可能很多程序员都会认同Dan的观点-- 在VB.NET实现中,将Option Strict off设置成缺省状态是Mircosoft一大错举。但事实上你不必非得按照Microsoft的这一设定。在以下这个技巧中,我会介绍如何建立一个自动将Option Strict设置为On的add-in方法(用这个方法你可能都会忘记如何使用手动添加了)。 第一步是通过使用Add-in Wizard来建立一个新的Visual Studio add-in 项目,并将其命名为VBOptionStrictOn。当向导建好了这个add-in 并打开了Connect.vb模块的代码窗口之后,你可以在这个Connect类中声明两个类级(class-level) 变量。你需要将向导定义的这两个变量:Dim applicationObject As EnvDTE.DTE Dim addInInstance as EnvDTE.AddIn 用以下两个变量声明来取代:Private _app As EnvDTE.DTE Private WithEvents _SolutionEvents As SolutionEvents 接下来,在public OnConnection 的事件处理(event handler)中将向导生成的代码:applicationObject = CType(application, EnvDTE.DTE) addInInstance = CType(addInInst, EnvDTE.AddIn) 用以下两个给变量赋值的语句来取代:_app = CType(application, EnvDTE.DTE) _SolutionEvents = _app.Events.SolutionEvents 然后,在Solution Explorer中选择VBOptionStrictOn项目,并通过在Add Reference 对话框的.NET tab里选择VSLangProj assembly来添加一个reference。同时,在Connect.vb模块的代码顶部加上Imports VSLangProj语句。 VSLangProj assembly提供了名为prjOptionStrict的列举(enumeration),其中包含OptionStrict的可能值(On, Off)。 现在你可以开始将Option Strict设置成On了。整个add-in 过程包括四个加入到Connect类的小的VB.NET子过程。add-in过程不需要用户进行干涉因而无需使用用户界面。前两个过程是同一个方法的重载(overload):Public Sub SetOptionStrictOn() Dim proj As Project ''' Check and set OptionStrict for each project in ''' the open solution by calling an overloaded ''' version of this sub. For Each proj In CType(_app.GetObject("VBProjects") _ , Projects) Call SetOptionStrictOn(proj)NextEnd SubPublic Sub SetOptionStrictOn(ByRef proj As Project) Dim propOptionStrict As [Property]With projpropOptionStrict = _ .Properties.Item("OptionStrict") If CType(propOptionStrict.Value, _ prjOptionStrict) <> _ prjOptionStrict.prjOptionStrictOn Then ''' Set OptionStrict = "On". propOptionStrict.Value = _ prjOptionStrict.prjOptionStrictOn
可能很多程序员都会认同Dan的观点-- 在VB.NET实现中,将Option Strict off设置成缺省状态是Mircosoft一大错举。但事实上你不必非得按照Microsoft的这一设定。在以下这个技巧中,我会介绍如何建立一个自动将Option Strict设置为On的add-in方法(用这个方法你可能都会忘记如何使用手动添加了)。 第一步是通过使用Add-in Wizard来建立一个新的Visual Studio add-in 项目,并将其命名为VBOptionStrictOn。当向导建好了这个add-in 并打开了Connect.vb模块的代码窗口之后,你可以在这个Connect类中声明两个类级(class-level) 变量。你需要将向导定义的这两个变量:Dim applicationObject As EnvDTE.DTE Dim addInInstance as EnvDTE.AddIn 用以下两个变量声明来取代:Private _app As EnvDTE.DTE Private WithEvents _SolutionEvents As SolutionEvents 接下来,在public OnConnection 的事件处理(event handler)中将向导生成的代码:applicationObject = CType(application, EnvDTE.DTE) addInInstance = CType(addInInst, EnvDTE.AddIn) 用以下两个给变量赋值的语句来取代:_app = CType(application, EnvDTE.DTE) _SolutionEvents = _app.Events.SolutionEvents 然后,在Solution Explorer中选择VBOptionStrictOn项目,并通过在Add Reference 对话框的.NET tab里选择VSLangProj assembly来添加一个reference
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
梧桐画室(台州三门县)地址在什么地方,想过去
mix2无论是wifi还是移动网络都好卡
目前中国哪个大学的政治学实力最强?
阿拉伯数字并不是阿拉伯人的首创,它的创造者
西安泾河工业园哪里有农行?
Intel G550 4G内存 不过是集成显卡 能玩英雄
1952年6月10日,毛泽东同志为中华全国体育总
夏新N906平板电脑黑屏怎么办
谁能帮我打出十字架的符号啊?好看点的
成语悬肠挂肚的意思是什么啊?有知道释义的请
小米5 魅族pro6哪个拍照好
浙大暑假辅导班地址在哪,我要去那里办事
血卟啉病已明确的不安全麻醉药物有A.依托咪酯
白色在生活中的特殊作用
请问“昔先皇颁僧保所货西洋珠于仕臣”出自哪
推荐资讯
成语一见如故的意思是什么啊?有知道释义的请
战神4 最高难度有奖杯吗
广电网机顶盒编号有用吗
曾经签证过期滞留日本,是主动回国的。是否还
百世快递(902县道南100米百世快递)地址好找么
十六点九八又是什么梗,求解,求解?
多多分期app下载安装
下列关于患者享有平等医疗权利的表述错误的是
手指头为什么会脱皮
伊朗藏红花和国内藏红花有什么区别?
江阴星期六交通违章处理的地方上班吗?
一件连衣裙,后面是拉链的,有点小了,可以改大
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?