Vb.net 在visual basic中是否有一种安全的方法来声明字符串变量?
在使用PHP时,为了安全起见,我总是声明我的字符串变量并将它们设置为null。我对VisualBasic不熟悉,想知道声明字符串变量最安全的方法是什么。意志Vb.net 在visual basic中是否有一种安全的方法来声明字符串变量?,vb.net,string,Vb.net,String,在使用PHP时,为了安全起见,我总是声明我的字符串变量并将它们设置为null。我对VisualBasic不熟悉,想知道声明字符串变量最安全的方法是什么。意志 Dim strWords As String 够了吗?还是最好将其设置为null或nothing或其他默认值或基元类型?默认情况下,strWords在默认情况下将为nothing 与其通过在声明变量时设置一个值来确保此值永远不会为空,还不如确保代码不会保留strWords为空的可能性,如果是,则应适当处理它 如果需要检查字符串是否为空或为
Dim strWords As String
够了吗?还是最好将其设置为null或nothing或其他默认值或基元类型?默认情况下,strWords在默认情况下将为
nothing
与其通过在声明变量时设置一个值来确保此值永远不会为空,还不如确保代码不会保留strWords
为空的可能性,如果是,则应适当处理它
如果需要检查字符串是否为空或为空,可以执行以下操作:
If Not String.IsNullOrEmpty(strWords) Then
默认情况下,strWords在默认情况下仍然是
Nothing
与其通过在声明变量时设置一个值来确保此值永远不会为空,还不如确保代码不会保留strWords
为空的可能性,如果是,则应适当处理它
如果需要检查字符串是否为空或为空,可以执行以下操作:
If Not String.IsNullOrEmpty(strWords) Then
声明字符串变量的最佳方法是在声明后直接将其设置为空字符串。对于大多数.NET开发人员来说,将字符串设置为“”或什么都不设置是一个常见的错误。这是错误的,因为“”实际上不是.NET CLR的空字符串,如果稍后在代码中引用该字符串,则不会引发NullReferenceException。以下是字符串声明的正确代码:
Dim str As String = "" ' <--This is "not best practice"
Dim str2 As String = Nothing ' <--This is "not best practice"
Dim str3 As String = vbNullString ' <--This is "not best practice"
Dim str4 As String = String.Empty ' <--correct
Dim str As String=“”声明字符串变量的最佳方法是在声明后直接将其设置为空字符串。对于大多数.NET开发人员来说,将字符串设置为“”或什么都不设置是一个常见的错误。这是错误的,因为“”实际上不是.NET CLR的空字符串,如果稍后在代码中引用该字符串,则不会引发NullReferenceException。以下是字符串声明的正确代码:
Dim str As String = "" ' <--This is "not best practice"
Dim str2 As String = Nothing ' <--This is "not best practice"
Dim str3 As String = vbNullString ' <--This is "not best practice"
Dim str4 As String = String.Empty ' <--correct
Dim str As String=“”在.net和VB.net中,声明字符串的最佳安全方法是为变量指定类型名。例如:
Dim MyString As System.String
我喜欢用完全限定名声明字符串(或任何类型),以避免混淆。不要这样做:
Dim MyString = "hello world"
在.net和VB.net中,声明字符串的最佳安全方法是为变量指定类型名。例如:
Dim MyString As System.String
我喜欢用完全限定名声明字符串(或任何类型),以避免混淆。不要这样做:
Dim MyString = "hello world"
是的,据我所知。(但是我是个初学者,所以请接受我的建议,用半粒盐值两美分。)@G这是个好问题。我相信,因为我正在编写一个简单的控制台应用程序,所以从我所知道的来看,它是VB6Yes。(但是我是个初学者,所以请接受我的建议,用半粒盐值两美分。)@G这是个好问题。我相信,因为我正在编写一个简单的控制台应用程序,它是VB6,所以如果我编写:if strWords Then。。。。这会检查strWords是否不等于零吗?@Scott-no.如果不是String.IsNullOrEmpty(strWords),则使用代码>+1尽管由于这是VB,您可以检查字符串是否不是空的,或者如果strWords“”则VB内部函数不将任何内容视为与“”相同,因此如果我写:If strWords Then。。。。这会检查strWords是否不等于零吗?@Scott-no.如果不是String.IsNullOrEmpty(strWords),则使用代码>+1尽管由于这是VB,您可以检查字符串是否为空或与此类似。如果strWords“”则VB内部函数将nothing视为与“”完全相同。与C#相比,设置为nothing的字符串在VB中引起NullReferenceException的可能性更小。VB内部函数将Nothing视为与“”相同。与C#相比,设置为Nothing的字符串在VB中引起NullReferenceException的可能性更小。VB内部函数不将任何内容视为与“”