From: Mark Hurd on 23 Mar 2010 20:27 "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 29 Mar 2010 07:36
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 |