不可能?谁叫方法? [英] Impossible? Who called the Method?

查看:80
本文介绍了不可能?谁叫方法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述




如何在给定方法中知道它被调用的方法?


例如:我有两个属性'(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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆