我怎样才能实现以下目标:
public void PrintText(ref string currentBid)
{
Console.WritleLine(currentBid);
}
Run Code Online (Sandbox Code Playgroud)
目前,我收到以下错误:
Cannot use ref or out parameter in annonymous method...
Run Code Online (Sandbox Code Playgroud)
编辑:
这是完整的方法:
public static void writeToFileUK(string FolderName, ref string currentBid)
{
TimeSpan start = new TimeSpan(08, 00, 00);
TimeSpan end = new TimeSpan(16, 30, 00);
var timer = new System.Threading.Timer((e) =>
{
try
{
string fileName = @"C:\Users\Documents\Stocks\" + FolderName + "\\" + DateTime.Now.ToString("yyy-MM-dd") + ".txt";
if (!File.Exists(fileName))
File.WriteAllText(fileName, "Time, Bid" + Environment.NewLine);
string text = DateTime.Now.ToString("HH-mm-ss") + ", " + currentBid;
if (DateTime.Now.TimeOfDay >= start && DateTime.Now.TimeOfDay <= end)
{
using (StreamWriter stream = new StreamWriter(fileName, true))
{
stream.WriteLine(text);
}
}
}
catch { }
}, null, 0, 1000);
Console.Read();
}
try
{
Task.Run(() => writeToFileUK("HSBC", ref CurrentHSBCBid));
}
catch { }
Run Code Online (Sandbox Code Playgroud)
这个方法将整天每秒调用一次,我希望它将ref字符串打印到文本文件中
public override void OnUpdate(int itemPos, string itemName, IUpdateInfo update)
{
try
{
var str = GetL1Prices(itemPos, itemName, update);
var updateTime = update.GetNewValue("UPDATE_TIME");
var bid = update.GetNewValue("BID");
if(itemName == "L1:IX.D.DOW.DAILY.IP")
Program.CurrentDOWBid = bid;
Run Code Online (Sandbox Code Playgroud)
} catch(Exception ex){Console.WriteLine(ex.StackTrace); }
}
不要通过引用传递字符串.你没有改变变量,所以没有理由通过引用传递它.当您通过值(默认行为)传递它时,在匿名方法中使用它时不会有任何问题,该方法不支持使用ref参数调用方法.
| 归档时间: |
|
| 查看次数: |
117 次 |
| 最近记录: |