From: Mark Hurd on
"G�ran Andersson" <guffa(a)guffa.com> wrote in message
news:OMZtZOmyKHA.3884(a)TK2MSFTNGP06.phx.gbl...
<snip>
> The Is operator works for some purposes, but it doesn't do an equality
> comparison. For example, (String Is Object) = True, while (Object Is
> String) = False.

Could you be thinking of the C# Is operator?

> --
> G�ran Andersson

--
Regards,
Mark Hurd, B.Sc.(Ma.) (Hons.)

From: Göran Andersson on
Armin Zingler wrote:
> Am 23.03.2010 09:34, schrieb G�ran Andersson:
>> Armin Zingler wrote:
>>> Am 23.03.2010 02:27, schrieb John:
>>>> Hi
>>>>
>>>> I have the following code;
>>>>
>>>> ByVal MyType As Type
>>>> Dim frame As StackFrame
>>>> If frame.GetMethod().DeclaringType = MyType Then
>>>>
>>>> Problem is I am getting the "Operator '=' is not defined for types
>>>> 'System.Type' and 'System.Type'." error on the last line. How can I fix
>>>> this?
>>> To compare references, use the 'Is' operator:
>>>
>>> If frame.GetMethod().DeclaringType Is MyType
>>>
>> The Is operator works for some purposes, but it doesn't do an equality
>> comparison. For example, (String Is Object) = True, while (Object Is
>> String) = False.
>
> Help me understanding it. :) John wants to check if it's the same System.Type
> object, right? So your example with String and Object would be:
>
> dim t1 = gettype(string)
> dim t2 = gettype(object)
>
> msgbox (t1 is t2) 'False
> msgbox (t2 is t1) 'False
>
> He does not want to check if the type of an object is of a
> certain type or derived from that type. But maybe I got it wrong.
>

No, you are right. I was thinking that the Is operator is comparing the
types, but it is comparing the Type objects.

--
G�ran Andersson
_____
http://www.guffa.com