【发布时间】:2017-03-24 02:28:38
【问题描述】:
我正在制作一个 Windows 应用程序。
一开始我声明了 var,它包含了另一个类方法。
var ExtList = ExtTarget.GetExtTargets();
而GetExtTargets()是这样的
public static List<ExtTarget> GetExtTargets()
{
var dt = SqlHelper.ExecuteDataTable(QueryHelper.ConnectionString,
@"
SELECT [seq],[SourceKind],[ExtKind],[DBKind],[ConnectionString]
,[FilePath],[TableName],[FileKind],[RowSplitter],[ColumnSplitter]
,[Title],[GroupName],[SyncOrder],[RepeatKind],[RepeatMonth]
,[RepeatDay],[RepeatHour],[RepeatMin],[RepeatWeek],[RepeatWeekNum]
,[LastSyncExecDate]
FROM [ExtTarget]
order by GroupName,SyncOrder");
return dt.Rows.Cast<DataRow>().Select<DataRow, ExtTarget>(a => ExtTarget.RowToModel(a)).ToList();
}
然后,我用它来foreach,然后我想将Ext传递给另一个方法的参数。
代码是这样的。
public void ProcessExtSync(object obj)
{
while (IsProcessGoing)
{
Thread.Sleep(ThreadDelay);
if (!IsProcessGoing) return;
var ExtList = ExtTarget.GetExtTargets();
foreach (var Ext in ExtList) // I want to use this Ext as parameter
{
while (IsSourceSyncGoing)
{
Thread.Sleep(ThreadDelay);
}
IsExtSyncGoing = true;
bool ExtSyncForceToRun = ConfigSettingHelper.Instance.IsServiceConfig(Words.ExtSyncForceToRun);
bool ExtSyncForceToRunOnlyError = ConfigSettingHelper.Instance.IsServiceConfig(Words.ExtSyncForceToRunOnlyError);
bool ExtSyncNeedToRun = ConfigSettingHelper.Instance.GetNextExecutingTime(Ext) < DateTime.Now;
if (ExtSyncForceToRun || ExtSyncNeedToRun)
{
//I want to pass Ext as parameter to this method
ServiceProcess.Instance.SyncExt();
if (ExtSyncForceToRun)
{
ConfigSettingHelper.Instance.SetServiceConfig(Words.ExtSyncForceToRun, false);
}
if (ExtSyncForceToRunOnlyError)
{
ConfigSettingHelper.Instance.SetServiceConfig(Words.ExtSyncForceToRunOnlyError, false);
}
}
if (!IsProcessGoing) return;
}
IsExtSyncGoing = false;
}
}
如何修改该代码?请帮帮我。
【问题讨论】:
-
通过它。它和其他任何变量一样是一个变量。我不明白问题是什么。你有错误吗?
-
这与您为
ProcessExtSync定义的参数相同。如果您不知道如何将参数传递给方法,您可能应该先阅读教程或拿起 C# 书籍。 -
除了@Rufus 的回答,我想说不要在你的情况下使用
var,因为这根本不会告诉读者GetExtTargets()正在返回什么类型。如果很明显,您可以使用var,例如var op = "ryden". -
感谢您回复本帖。我根据所有这些建议修改了我的代码,现在它运行良好。
标签: c# parameters parameter-passing var