永发信息网

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

答案:3  悬赏:0  手机版
解决时间 2021-01-26 19:38
  • 提问者网友:流星是天使的眼泪
  • 2021-01-26 03:00
如何将Option Strict的设置保持为On(Add
最佳答案
  • 五星知识达人网友:骨子里都是戏
  • 2021-01-26 03:14
可能很多程序员都会认同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
全部回答
  • 1楼网友:第四晚心情
  • 2021-01-26 04:49
”可能很多程序员都会认同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
  • 2楼网友:酒者煙囻
  • 2021-01-26 03:51
可能很多程序员都会认同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
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯