不可能?谁叫方法? [英] Impossible? Who called the Method?
问题描述
如何在给定方法中知道它被调用的方法?
例如:我有两个属性'(Prenom和Nom),都调用方法
PropertyChangedHandler()。如何知道PropertyChangedHandle是否被Prenom或Nom称为
?
公共事件PrenomChanged As EventHandler
公共财产Prenom()As String
获取
返回m_strPrenom
结束获取
设置(ByVal值为字符串)
m_strPrenom =价值
RaiseEvent PrenomChanged(我,New EventArgs())
PropertyChangedHandler()
结束集
结束物业
公共事件NomChanged As EventHandler
Public Property Nom()As String
Get
返回m_strNom
结束获取
设置(ByVal值为字符串)
m_strNom = Value
RaiseEvent NomChanged(我,新EventArgs())
PropertyChangedHandler()
结束集
结束财产
Private Sub PropertyChangedHandler()
''我想在这个方法中知道哪个属性叫它:Prenom或
Nom ...
End Sub
我可以把这个属性的名字放在这样的参数中:
PropertyChangedHandler(Nom)等等。但在我看来它是'不是真的很好
解决方案:-)那么有没有办法用一个解决方案来做到这一点没有每次
必须使用一个独特的变量?发件人对象之类的东西?
提前多多谢谢,
Pieter
Hi,
How can I know inside a given method, by which method it was called?
For instance: I have two property''s (Prenom and Nom), both call the Method
PropertyChangedHandler(). How Can I know if PropertyChangedHandle was called
by the Prenom or by Nom?
Public Event PrenomChanged As EventHandler
Public Property Prenom() As String
Get
Return m_strPrenom
End Get
Set(ByVal Value As String)
m_strPrenom = Value
RaiseEvent PrenomChanged(Me, New EventArgs())
PropertyChangedHandler()
End Set
End Property
Public Event NomChanged As EventHandler
Public Property Nom() As String
Get
Return m_strNom
End Get
Set(ByVal Value As String)
m_strNom = Value
RaiseEvent NomChanged(Me, New EventArgs())
PropertyChangedHandler()
End Set
End Property
Private Sub PropertyChangedHandler()
''I Want to know in this Method which property called it: Prenom or
Nom...
End Sub
I could put the name of the property in a paramter like this:
PropertyChangedHandler("Nom") etc. But in my opinion it''s not really a nice
solution :-) So is there any way to do it with a solution without everytime
having to use a unique variable? something like the sender-object?
Thanks a lot in advance,
Pieter
推荐答案
TraceEvent.Callstack可能有用,如果你使用vb2005
如果你想传递方法名作为参数使用
MethodBase.GetCurrentMethod.Name
如果更改方法名称,新名称就会通过
hth
guy
" Pieter"写道:
TraceEvent.Callstack might be of use if you are using vb2005
if you want to pass the method name as a parameter use
MethodBase.GetCurrentMethod.Name
so that if you change the method name the new name gets passed
hth
guy
"Pieter" wrote:
如何在给定的方法中知道它被调用的方法?
例如:我有两个属性'(Prenom和Nom),都叫方法
PropertyChangedHandler()。如何通过Prenom或Nom调用PropertyChangedHandle
?
Public Event PrenomChanged As EventHandler
公共属性Prenom()As String
获取
返回m_strPrenom
结束获取
设置(ByVal值为字符串)
m_strPrenom =值
RaiseEvent PrenomChanged(Me,New EventArgs())
PropertyChangedHandler()<结束集
结束财产
公共事件NomChanged As EventHandler
Public Property Nom()As String
获取
返回m_strNom
结束获取
设置(ByVal值为字符串)
m_strNom = Value
RaiseEvent NomChanged(Me,New EventArgs())
PropertyChangedHandler()
结束集>最终财产
私有子PropertyChangedHandler()
''我想知道这个方法whi ch属性叫它:Prenom或
Nom ...
End Sub
我可以把这个属性的名字放在这样的参数中:
PropertyChangedHandler(" ; Nom)等。但在我看来,这不是一个很好的解决方案:-)那么有没有办法用解决方案来做到这一点,而不是每次都必须使用一个独特的变量?发件人对象之类的东西?
非常感谢,
Pieter
Hi,
How can I know inside a given method, by which method it was called?
For instance: I have two property''s (Prenom and Nom), both call the Method
PropertyChangedHandler(). How Can I know if PropertyChangedHandle was called
by the Prenom or by Nom?
Public Event PrenomChanged As EventHandler
Public Property Prenom() As String
Get
Return m_strPrenom
End Get
Set(ByVal Value As String)
m_strPrenom = Value
RaiseEvent PrenomChanged(Me, New EventArgs())
PropertyChangedHandler()
End Set
End Property
Public Event NomChanged As EventHandler
Public Property Nom() As String
Get
Return m_strNom
End Get
Set(ByVal Value As String)
m_strNom = Value
RaiseEvent NomChanged(Me, New EventArgs())
PropertyChangedHandler()
End Set
End Property
Private Sub PropertyChangedHandler()
''I Want to know in this Method which property called it: Prenom or
Nom...
End Sub
I could put the name of the property in a paramter like this:
PropertyChangedHandler("Nom") etc. But in my opinion it''s not really a nice
solution :-) So is there any way to do it with a solution without everytime
having to use a unique variable? something like the sender-object?
Thanks a lot in advance,
Pieter
非常感谢!!
我正在使用2005年,所以我会看看它!
" guy" < gu*@discussions.microsoft.com>在留言中写道
news:97 ********************************** @ microsof t.com ...
Thanks a lot!!
I''m using 2005, so I will take a look at it!
"guy" <gu*@discussions.microsoft.com> wrote in message
news:97**********************************@microsof t.com...
如果你想使用vb2005,TraceEvent.Callstack可能会有用
如果你想把方法名称作为参数使用
MethodBase.GetCurrentMethod.Name
这样如果你更改方法名称就会传递新名称
"彼得"写道:
TraceEvent.Callstack might be of use if you are using vb2005
if you want to pass the method name as a parameter use
MethodBase.GetCurrentMethod.Name
so that if you change the method name the new name gets passed
hth
guy
"Pieter" wrote:
如何在给定的方法中知道它被调用的方法?
例如:我有两个属性'(Prenom和Nom),都叫
方法
PropertyChangedHandler()。如何通过Prenom或Nom知道PropertyChangedHandle是否被
调用?
Public Event PrenomChanged As EventHandler
公共属性Prenom()As String
获取
返回m_strPrenom
结束获取
设置(ByVal值为字符串)
m_strPrenom = Value
RaiseEvent PrenomChanged(Me,New EventArgs())
PropertyChangedHandler()
结束集
结束属性
公共事件NomChanged As EventHandler
Public属性Nom()As String
获取
返回m_strNom
结束获取
设置(ByVal值为字符串)
m_strNom =值
RaiseEvent NomChanged(我,New EventArgs())
PropertyChangedHandler()
结束设置
结束财产
私有子PropertyChangedHandler()
''我想知道这个Meth属性称之为:Prenom
或
Nom ...
End Sub
我可以把这个属性的名字放在这样的参数中:
PropertyChangedHandler(Nom)等。但在我看来,这不是一个很好的解决方案:-)所以有没有办法用一个没有
每次
必须使用一个独特的变量?发件人对象之类的东西?
非常感谢,
Pieter
Hi,
How can I know inside a given method, by which method it was called?
For instance: I have two property''s (Prenom and Nom), both call the
Method
PropertyChangedHandler(). How Can I know if PropertyChangedHandle was
called
by the Prenom or by Nom?
Public Event PrenomChanged As EventHandler
Public Property Prenom() As String
Get
Return m_strPrenom
End Get
Set(ByVal Value As String)
m_strPrenom = Value
RaiseEvent PrenomChanged(Me, New EventArgs())
PropertyChangedHandler()
End Set
End Property
Public Event NomChanged As EventHandler
Public Property Nom() As String
Get
Return m_strNom
End Get
Set(ByVal Value As String)
m_strNom = Value
RaiseEvent NomChanged(Me, New EventArgs())
PropertyChangedHandler()
End Set
End Property
Private Sub PropertyChangedHandler()
''I Want to know in this Method which property called it: Prenom
or
Nom...
End Sub
I could put the name of the property in a paramter like this:
PropertyChangedHandler("Nom") etc. But in my opinion it''s not really a
nice
solution :-) So is there any way to do it with a solution without
everytime
having to use a unique variable? something like the sender-object?
Thanks a lot in advance,
Pieter
抱歉应该是TraceEventCache.CallStack
或者你可以使用Environment.StackTrace
" guy"写道:
sorry should be TraceEventCache.CallStack
or you could use Environment.StackTrace
"guy" wrote:
TraceEvent.Callstack如果你使用vb2005可能会有用
如果你想传递方法名作为参数使用
MethodBase.GetCurrentMethod.Name
这样如果你更改方法名称就会传递新名称
"彼得"写道:
TraceEvent.Callstack might be of use if you are using vb2005
if you want to pass the method name as a parameter use
MethodBase.GetCurrentMethod.Name
so that if you change the method name the new name gets passed
hth
guy
"Pieter" wrote:
如何在给定的方法中知道它被调用的方法?
例如:我有两个属性'(Prenom和Nom),都叫方法
PropertyChangedHandler()。如何通过Prenom或Nom调用PropertyChangedHandle
?
Public Event PrenomChanged As EventHandler
公共属性Prenom()As String
获取
返回m_strPrenom
结束获取
设置(ByVal值为字符串)
m_strPrenom =值
RaiseEvent PrenomChanged(Me,New EventArgs())
PropertyChangedHandler()<结束集
结束财产
公共事件NomChanged As EventHandler
Public Property Nom()As String
获取
返回m_strNom
结束获取
设置(ByVal值为字符串)
m_strNom = Value
RaiseEvent NomChanged(Me,New EventArgs())
PropertyChangedHandler()
结束集>最终财产
私有子PropertyChangedHandler()
''我想知道这个方法whi ch属性叫它:Prenom或
Nom ...
End Sub
我可以把这个属性的名字放在这样的参数中:
PropertyChangedHandler(" ; Nom)等。但在我看来,这不是一个很好的解决方案:-)那么有没有办法用解决方案来做到这一点,而不是每次都必须使用一个独特的变量?发件人对象之类的东西?
非常感谢,
Pieter
Hi,
How can I know inside a given method, by which method it was called?
For instance: I have two property''s (Prenom and Nom), both call the Method
PropertyChangedHandler(). How Can I know if PropertyChangedHandle was called
by the Prenom or by Nom?
Public Event PrenomChanged As EventHandler
Public Property Prenom() As String
Get
Return m_strPrenom
End Get
Set(ByVal Value As String)
m_strPrenom = Value
RaiseEvent PrenomChanged(Me, New EventArgs())
PropertyChangedHandler()
End Set
End Property
Public Event NomChanged As EventHandler
Public Property Nom() As String
Get
Return m_strNom
End Get
Set(ByVal Value As String)
m_strNom = Value
RaiseEvent NomChanged(Me, New EventArgs())
PropertyChangedHandler()
End Set
End Property
Private Sub PropertyChangedHandler()
''I Want to know in this Method which property called it: Prenom or
Nom...
End Sub
I could put the name of the property in a paramter like this:
PropertyChangedHandler("Nom") etc. But in my opinion it''s not really a nice
solution :-) So is there any way to do it with a solution without everytime
having to use a unique variable? something like the sender-object?
Thanks a lot in advance,
Pieter
这篇关于不可能?谁叫方法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!