在VB.NET中Option Strict On 和 Option Explicit On 是用来干啥的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在VB.NET中Option Strict On 和 Option Explicit On 是用来干啥的?相关的知识,希望对你有一定的参考价值。

我参考了MSDN,是这样说的:
Option Explicit:用于在文件级强制对该文件中的所有变量进行显式声明。
Option Strict:限制隐式数据类型转换只能是拓宽转换。这显式禁止了任何会发生数据丢失的数据类型转换和数值类型与字符串之间的任何转换。

可是这样解释还是不理解阿!到底是什么意思啊?哪位高人指点一下!谢谢

参考技术A 选第一个就没错,编程要养成好的习惯
变量用之前一定要先声明.

在 vb.net 中使用 MATLAB 函数

【中文标题】在 vb.net 中使用 MATLAB 函数【英文标题】:Using MATLAB functions in vb.net 【发布时间】:2014-01-23 12:50:45 【问题描述】:

我是 VB.net 的新手,但我必须为我们的项目这样做。我做了一个非常简单的程序来调用我在 vb.net 中制作的 matlab 函数。这个程序很简单,它只需要确定图片框中图片的宽度和高度。

这是我的 matlab 代码并使用 .NET 程序集编译它以导出 .dll 文件:

function [width, height, third] = imageInfo(input)
inImage = imread(input);
[width, height, third] = size(inImage);
end

这是我的程序的 GUI:

这是我制作的vb代码:

Imports MathWorks.MATLAB.NET.Arrays
Imports MathWorks.MATLAB.NET.Utility
Imports imageInfo

Public Class Form1
    Public myImageInfo As New imageInfoClass

    Dim imageWidth As String
    Dim imageHeight As String
    Dim result As New MWNumericArray
    Dim imagePath As String

    Private Sub btnBrowse_Click(sender As Object, e As EventArgs) Handles btnBrowse.Click
        If ofdSelectPicture.ShowDialog = DialogResult.OK Then
            pbImage.Image = Image.FromFile(ofdSelectPicture.FileName)
            imagePath = "'" & ofdSelectPicture.FileName & "'"
        End If
    End Sub

    Private Sub btnProcess_Click(sender As Object, e As EventArgs) Handles btnProcess.Click
        result = myImageInfo.imageInfo(imagePath)
        tbHeight.Text = imageHeight
        tbWidth.Text = imageWidth
    End Sub
End Class

运行程序时总是出错。我希望你能帮我解决这个问题。谢谢

【问题讨论】:

如果你能说出你遇到了什么类型的错误,那真的很有帮助。是例外吗?它有消息吗?你什么时候收到这个错误? 这里是错误截图:imagizer.imageshack.us/v2/800x600q90/819/yruy.jpg我在运行程序时遇到了错误。 【参考方案1】:

这部分在这里:

result = myImageInfo.imageInfo(imagePath)

imagePath 需要是完整路径。您将其删除并添加逗号

imagePath = "'" & ofdSelectPicture.FileName & "'"

你可以试试:

imagePath = ofdSelectPicture.SafeFileName

【讨论】:

imread 需要文件名的完整路径(除非图像在当前目录中或在 MATLAB 路径中可用),但您不必将其用单引号括起来。 MWArray 桥接类负责将 .NET 字符串转换为 MATLAB 字符串。所以我认为imagePath = ofdSelectPicture.FileName 应该可以工作.. 我仍然收到错误消息:Image Info.exe 中出现“System.InvalidOperationException”类型的未处理异常附加信息:创建表单时出错。有关详细信息,请参阅 Exception.InnerException。错误是:“imageInfo.imageInfoClass”的类型初始值设定项引发了异常。 @elvinguitar 你知道如何使用调试器吗?它会对你有很大帮助。您可以在result = myImageInfo.imageInfo(imagePath) 行上放置一个断点,这将使调试器在该行执行之前停止。然后就可以看到imagePath)的值了。 @MPelletier 抱歉,但我是 vb.net 的新手,不知道如何使用调试器。只是想问一下,我的matlab代码都正确吗? 对于这部分本身我不能说,因为我不知道 Matlab。对不起。

以上是关于在VB.NET中Option Strict On 和 Option Explicit On 是用来干啥的?的主要内容,如果未能解决你的问题,请参考以下文章

html的option标签里value属性的值不能带<>吗

异常:TypeError: ‘caller‘, ‘callee‘, and ‘arguments‘ properties may not be accessed on strict mode func

vb.net正则表达式以获取到期账单的日期

css select dropdown bold on some <option>'s

VB.net中如何嵌套EXCEL?

vb6中的RtlMoveMemory ByVal a,在vb.net中应如何表达?