标签: nothing

VB.NET - IsNothing与什么都没有

这里有没有人使用VB.NET并且强烈偏好或反对使用IsNothing而不是Is Nothing(例如,If IsNothing(anObject)If anObject Is Nothing...)?如果是这样,为什么?

编辑:如果你认为它们都是同样可以接受的,你认为最好选择一个并坚持下去,还是可以混合它们?

vb.net nothing

128
推荐指数
6
解决办法
19万
查看次数

为什么我不能检查'DateTime'是否'没什么'?

在VB.NET中,有没有办法将DateTime变量设置为"未设置"?为什么它可以设置DateTimeNothing,但没有能够检查它是否是Nothing?例如:

Dim d As DateTime = Nothing
Dim boolNotSet As Boolean = d Is Nothing 
Run Code Online (Sandbox Code Playgroud)

第二个语句抛出此错误:

'Is' operator does not accept operands of type 'Date'. Operands must be reference or
nullable types.
Run Code Online (Sandbox Code Playgroud)

vb.net null datetime nullable nothing

75
推荐指数
3
解决办法
9万
查看次数

在VBScript中检查NULL时出错

我在Classic ASP页面中有以下VBScript:

function getMagicLink(fromWhere, provider)
    dim url 
    url = "magic.asp?fromwhere=" & fromWhere
    If Not provider is Nothing Then ' Error occurs here
        url = url & "&provider=" & provider 
    End if
    getMagicLink = "<a target='_blank' href='" & url & "'>" & number & "</a>"
end function
Run Code Online (Sandbox Code Playgroud)

我不断在行上写一个"Object Required"错误消息If Not provider Is Nothing Then.

值为NULL,或者它不是NULL,为什么我会收到此错误?

编辑:当我调用对象时,我传入NULL,或者传入一个字符串.

vbscript null nothing asp-classic nullreferenceexception

27
推荐指数
2
解决办法
12万
查看次数

Nothing = String.Empty(为什么这些相等?)

为什么第一个if语句评估为true?我知道如果我使用"是"而不是"="那么它将不会评估为真.如果我将String.Empty替换为"Foo",则它不会评估为true.String.Empty和"Foo"都有相同类型的String,那么为什么一个评估为true而另一个不评估?

    //this evaluates to true
    If Nothing = String.Empty Then

    End If

    //this evaluates to false
    If Nothing = "Foo" Then

    End If
Run Code Online (Sandbox Code Playgroud)

vb.net string nothing

25
推荐指数
2
解决办法
3万
查看次数

C#vs VB.NET - 处理null结构

我遇到了这个,并想知道是否有人可以解释为什么这在VB.NET中工作,我希望它会失败,就像在C#中一样

//The C# Version

struct Person {
    public string name;
}
...
Person someone = null; //Nope! Can't do that!!
Person? someoneElse = null; //No problem, just like expected
Run Code Online (Sandbox Code Playgroud)

但是在VB.NET中...

Structure Person
    Public name As String
End Structure
...
Dim someone As Person = Nothing 'Wha? this is okay?
Run Code Online (Sandbox Code Playgroud)

没有什么不同于null(Nothing!= null - LOL?),或者这只是处理两种语言之间相同情况的不同方式?

为什么或两者之间的处理方式不同,这使得一个可以在一个,而不是另一个?

[更新]

鉴于一些评论,我更多地搞砸了......如果你想在VB.NET中允许某些东西为null,那么好像你真的必须使用Nullable ...例如...

'This is false - It is still a person'
Dim someone As Person = Nothing
Dim isSomeoneNull As Boolean = someone.Equals(Nothing) …
Run Code Online (Sandbox Code Playgroud)

c# vb.net nothing

23
推荐指数
2
解决办法
1万
查看次数

如何判断变量是否已在C#中初始化?

我知道这是一个愚蠢的问题,我想之前一定有人问过.但是我无法找到问题的答案.

下面是一些示例代码(当然不会编译)来概述我的问题:

class test
{
     int[] val1;
     string val2;

     static bool somefunction(test x, test y)
     {
         dosomestuff()

         test result;

         while(result is nothing)
         {
              if(somecondition){result=new test(something);}
         }
     }
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题在于以下几行:

while(result is nothing)
Run Code Online (Sandbox Code Playgroud)

这是VB的语法,当然这不是C#编译器所接受的.有人能告诉我如何解决这个问题吗?

c# class nothing isset

21
推荐指数
2
解决办法
3万
查看次数

VBA:有条件 - 没什么

IfVBA应用程序中有一个条件如下所示:

If Not My_Object Is Nothing Then
My_Object.Compute
Run Code Online (Sandbox Code Playgroud)

当代码在调试模式下运行时,我发现If即使My_Object具有"无变量" ,条件也会返回true .

有人可以解释一下吗?我想My_Object.Compute只在My_Object存在时执行.

vba if-statement excel-2007 excel-vba nothing

21
推荐指数
2
解决办法
22万
查看次数

如果Nothing类型位于类层次结构的底部,为什么我不能在其上调用任何可想到的方法?

scala类型Nothing表示(据我所知)类型层次结构的底部,也用符号denoted表示.也就是说,Nothing是任何给定类型的子类型.James Iry对我们这些没有理论背景理论背景的人解释了对Nothing类型的要求!

所以我的问题是,如果Nothing是每种类型的子类型,为什么我不能调用任何类型的方法Nothing?显然,我无法实例化Nothing但为什么不进行以下编译?

var n: Nothing = _

def main(args: Array[String]) {
  println(n.length) //compile error: value length is not a member of Nothing
}
Run Code Online (Sandbox Code Playgroud)

当然,Nothing这个子类型String应该可以吗?请注意,以下编译就好了!

var n: Nothing = _

def foo(s: String) : Int =  s.length

def main(args: Array[String]) {
  println(foo(n))
}
Run Code Online (Sandbox Code Playgroud)

同样如下:

def main(args: Array[String]) {
  println(n.asInstanceOf[String].length) 
}
Run Code Online (Sandbox Code Playgroud)

types scala nothing

15
推荐指数
1
解决办法
2545
查看次数

vb.net布尔值和无

我们来定义这个函数:

Public Function Test(ByVal value As Boolean)
    Return "blabla" + If(value = Nothing, "", If(value, "1", "0"))
End Function
Run Code Online (Sandbox Code Playgroud)

我希望它做到以下几点: Test(True) -> "blabla1",Test(False) -> "blabla0",Test(Nothing) -> "blabla".

问题是Test(Nothing)返回"blabla0".

.net vb.net boolean nothing

12
推荐指数
2
解决办法
2万
查看次数

VB Nullables和Nothings

我研究了VB.NET中C#default关键字等价,并遇到了这个问题.

然后我好奇.一些背景 - 我正在解析一个excel电子表格,其中许多列可以为null,并且我0和整数列之间肯定存在差异null.

我写了一个小解析方法:

Function Test(ByVal i As String) As Nullable(Of Integer)
    Dim j As Integer

    If Integer.TryParse(i, j) Then
        Return j
    Else
        Return Nothing
    End If
End Function
Run Code Online (Sandbox Code Playgroud)

这似乎工作正常.但是在这里,Integer如果我想要,我可以回复:

Function Test(ByVal i As String) As Nullable(Of Integer)
    Return 2 'or Return Nothing
End Function
Run Code Online (Sandbox Code Playgroud)

我也可以参加C#:

 static void Main(string[] args)
 {
     int? j = Test("1");
 }

 public static int? Test(string i)
 {
     return 2; //or …
Run Code Online (Sandbox Code Playgroud)

vb.net default-value nothing

9
推荐指数
1
解决办法
127
查看次数