C# 在c中传递值#

C# 在c中传递值#,c#,smpp,C#,Smpp,亲爱的各位, 我正在使用c#和Devshock协议编写一个smpp应用程序。在这里,mymppclient_evDeliver_Sm方法获取参数“e”作为“Devshock.protocol.SmppClient.Deliver\u SmEventArgs e”上的参数,然后使用“e”我们得到剩下的值,如:e.Params.Body.Data\u Coding和e.Params.Body.Short\u Message private void mySmppClient_evDeliver_Sm

亲爱的各位, 我正在使用c#和Devshock协议编写一个smpp应用程序。在这里,mymppclient_evDeliver_Sm方法获取参数“e”作为“Devshock.protocol.SmppClient.Deliver\u SmEventArgs e”上的参数,然后使用“e”我们得到剩下的值,如:e.Params.Body.Data\u Codinge.Params.Body.Short\u Message

private void mySmppClient_evDeliver_Sm(object sender,Devshock.Protocol.SmppClient.Deliver_SmEventArgs e)
        {
           string ShortMessage = mySmppClient.GetShortMessage(e.Params.Body.Data_Coding, e.Params.Body.Short_Message);        
           MessageBox.Show(ShortMessage);         
        }
现在我的问题是:

如何在不使用“e”作为参数的情况下获取值Params.Body.Data_Coding和Params.Body.Short_Message。如果使用任何对象或类似下面的结构获取值,对我来说会更好。我是如何做到的

private void mySmppClient()
{
  //declare any object or any other way let abc

   string ShortMessage=mySmppClient.GetShortMessage(abc.Params.Body.Data_Coding, abc.Params.Body.Short_Message );
   MessageBox.Show(ShortMessage);

}
对于那些帮助我解决这个问题的善良的人,我将非常高兴。 提前谢谢
Riad看来不可能,至少在“适当”的方式上不可能。虽然您可以使用实例或静态字段来传递方法的参数,但这将滥用该语言,并且最终会因为代码质量低而受到影响。当然,也许有一种不同的方式我没有想到


为什么不将方法参数作为参数传递呢?这就是他们在那里的目的

鉴于您想要显示的消息内容是作为活动的一部分出现的,我怀疑您是否能够以其他方式获得它。但是,您可以将值作为成员存储在类中,并从其他地方引用该类的内容。

为什么要在不引用e的情况下获取值?该方法是否必须没有任何参数?这就是问题所在吗?我需要声明一个没有任何参数的方法..这就是为什么..@Heinzi adn@Dyppl pls help为什么需要一个没有参数的方法?此设置中似乎没有任何内容需要Thariad,请提供完整的上下文。您打算在哪里使用此方法、哪些要求等。否则很难帮助您,您可以用一个示例指导我吗?如果possible@riad:没有,有两个原因。首先,它需要对您当前的代码和框架有比我实际拥有的更深的理解,所以我不能。但更重要的是,我永远不会故意提供错误代码的示例。@riad:也许,如果您提供完整的上下文说明为什么需要此方法没有参数,我们可以进一步帮助您。亲爱的配置器,首先感谢您的回复,基本上我使用这些参数接收短信。因此,我需要将一个方法调用到一个计时器函数中,该函数可以检查任何时刻的可用SMS。如果我使用此方法,那么当我调用该方法时,我将向该方法发送什么参数?请建议..@riad:拥有事件处理程序的全部意义(
mymppclient\u evDeliver\u Sm
)您不必创建一个计时器来频繁轮询新消息。您只需将事件处理程序附加到SmppClient的事件(类似于
mymppclient.evDeliver\u Sm+=mymppclient\u evDeliver\u Sm
…我不熟悉SMPP API),当新SMS到达时,您的函数将自动被调用。