[英]Pass Second Parameter Into Function
我是 c# 新手,繼承了沒有很好注釋的代碼,原始開發人員不再存在。
我需要將第二個參數傳遞給下面的函數:
代碼參考=1
public class SnmpTrapListener : IDisposable
{
....
private KeyValuePair<string, object> MapVariableValues(Variable variable)
{
....
return new KeyValuePair(...);
}
...
}
上述函數被調用/引用的唯一地方是在同一個類和另一個類中。
來自同一個類的引用是...
代碼參考=2
var observable = trapV1MessageHandler.ToObservableGenericTrapMessage(_Logger, MapVariableValues)
.Merge(trapV2MessageHandler.ToObservableGenericTrapMessage(_Logger, MapVariableValues));
來自其他班級的電話是……
代碼參考=3
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' 參數,如下所示......代碼參考 = 4
private KeyValuePair<string, object> MapVariableValues(Variable variable, String OID)
{
....
return new KeyValuePair(...);
}
...
}
我需要幫助的部分是如何更改上面“Code Ref=2”和“Code Ref=3”中顯示的代碼以處理第二個字符串參數?
我的想法是我只需要更改傳遞新字符串參數的“Code Ref = 3”下的一行,但我不知道如何執行此操作 - 我認為我需要更改的行:
Variables = e.EventArgs.TrapV1Message.Variables().Select(variableMapping).ToList()
您可以像往常一樣向函數添加第二個參數:
private KeyValuePair<string, object> MapVariableValues(Variable variable, String OID)
{
}
然后,您需要更改代碼示例 3 中函數的參數,以便接受具有 2 個輸入參數的函數,如下所示:
public static IObservable<GenericTrapMessage> ToObservableGenericTrapMessage(this TrapV1MessageHandler handler, Logger Logger, Func<Variable, String, KeyValuePair<string, object>> variableMapping)
{
}
對於選擇,您可以使用稍微不同的語法,以便您可以提供附加參數:
Variables = e.EventArgs.TrapV1Message.Variables().Select(v => variableMapping(v, "yourStringParameter").ToList()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.