首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将第二个参数传递给函数

将第二个参数传递给函数
EN

Stack Overflow用户
提问于 2020-03-30 23:06:21
回答 1查看 62关注 0票数 2

我是c#的新手,我继承的代码没有得到很好的注释,原来的开发人员已经不在了。

我需要将第二个参数传递给下面的函数:

代码Ref=1

代码语言:javascript
运行
复制
public class SnmpTrapListener : IDisposable
{
 ....
 private KeyValuePair<string, object> MapVariableValues(Variable variable)
        {
            ....
            return new KeyValuePair(...);
        }    
...
}

调用/引用上述函数的唯一位置是在同一个类和另一个类中。

来自同一个类的引用是...

代码Ref=2

代码语言:javascript
运行
复制
var observable = trapV1MessageHandler.ToObservableGenericTrapMessage(_Logger, MapVariableValues)
            .Merge(trapV2MessageHandler.ToObservableGenericTrapMessage(_Logger, MapVariableValues));

来自另一个类的调用是...

代码Ref=3

代码语言:javascript
运行
复制
public static IObservable<GenericTrapMessage> ToObservableGenericTrapMessage(this TrapV1MessageHandler handler, Logger Logger, Func<Variable, KeyValuePair<string, object>> variableMapping)
    {
        return Observable.FromEventPattern<TrapV1MessageReceivedEventArgs>(
          h => handler.MessageReceived += h,
          h => handler.MessageReceived -= h)
          .Select(e => 
          {
            return new GenericTrapMessage
            {
                Timestamp = e.EventArgs.TrapV1Message.TimeStamp,
                Sender = e.EventArgs.Sender.ToString() + ":" + System.Environment.MachineName.ToString(),
                Type = e.EventArgs.TrapV1Message.Enterprise.ToString(),
                Variables = e.EventArgs.TrapV1Message.Variables().Select(variableMapping).ToList()
            }
         });
     ...
    }

我想添加第二个字符串'OID‘参数,如下所示...代码Ref=4

代码语言:javascript
运行
复制
private KeyValuePair<string, object> MapVariableValues(Variable variable, String OID)
            {
                ....
                return new KeyValuePair(...);
            }    
    ...
    }

我需要帮助的部分是如何更改上面“代码Ref=2”和“代码Ref=3”中显示的代码来处理第二个字符串参数?

我的想法是,我只需要更改"Code Ref=3“下面的一行,传入新的字符串参数,但我不知道如何做到这一点-我认为我需要更改的行:

Variables = e.EventArgs.TrapV1Message.Variables().Select(variableMapping).ToList()

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-30 23:25:25

您可以像往常一样向您的函数添加第二个参数:

代码语言:javascript
运行
复制
private KeyValuePair<string, object> MapVariableValues(Variable variable, String OID)
{
}

然后,您需要更改代码示例3中函数的参数,以便接受具有2个输入参数的函数,如下所示:

代码语言:javascript
运行
复制
public static IObservable<GenericTrapMessage> ToObservableGenericTrapMessage(this TrapV1MessageHandler handler, Logger Logger, Func<Variable, String, KeyValuePair<string, object>> variableMapping)
{
}

对于选择,您可以使用稍有不同的语法,以便提供额外的参数:

代码语言:javascript
运行
复制
Variables = e.EventArgs.TrapV1Message.Variables().Select(v => variableMapping(v, "yourStringParameter").ToList()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60933517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档