|
web
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Problem using '=' with System.TypeHi
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? Thanks Regards Am 23.03.2010 02:27, schrieb John:
> Hi To compare references, use the 'Is' operator:> > 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? If frame.GetMethod().DeclaringType Is MyType -- Armin Armin Zingler wrote:
Show quoteHide quote > Am 23.03.2010 02:27, schrieb John: The Is operator works for some purposes, but it doesn't do an equality >> 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 > comparison. For example, (String Is Object) = True, while (Object Is String) = False. Am 23.03.2010 09:34, schrieb Göran Andersson:
Show quoteHide quote > Armin Zingler wrote: Help me understanding it. :) John wants to check if it's the same System.Type>> 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. 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. -- Armin Armin Zingler wrote:
Show quoteHide quote > Am 23.03.2010 09:34, schrieb Göran Andersson: No, you are right. I was thinking that the Is operator is comparing the >> 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. > types, but it is comparing the Type objects. "Göran Andersson" <gu***@guffa.com> wrote in message <snip>news:OMZtZOmyKHA.3884@TK2MSFTNGP06.phx.gbl... > The Is operator works for some purposes, but it doesn't do an equality Could you be thinking of the C# Is operator?> comparison. For example, (String Is Object) = True, while (Object Is > String) = False. Show quoteHide quote > -- > Göran Andersson -- Regards, Mark Hurd, B.Sc.(Ma.) (Hons.) John wrote:
Show quoteHide quote > Hi VB has it's own implementation of the = operator, so it doesn't always > > 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? > > Thanks > > Regards > work as you might expect. Use the Equals method to use it's own built in comparison to compare the types: If frame.GetMethod().DeclaringType.Equals(MyType) Then
Capture events for a control array
.NET Logging Library Re: Show zeros after decimal possible to monitor network communication? MIME Messages Re: U/LBound & copying arrays "Jobs in Finland" "Finland Jobs" "jobs in finland for americans" "jobs in finland for foreigners" "f AndAlso, OrElse and brackets Class Design with Collection Classes Re: string functions |
|||||||||||||||||||||||