【发布时间】:2015-04-23 13:26:19
【问题描述】:
我有一个带有变量“item”的执行方法。我需要将该变量传递给我的其他方法“IsStatusChangeValid”
以下是我目前拥有的,但到目前为止它还没有工作。我查看了一些有关堆栈溢出的相关问题,例如Accessing Variables From Another Method 并在线查看了一些参数传递教程/示例,例如 Parameter Passing in C# 但我一直无法正确应用这些信息。
protected override CommandResult OnExecute()
{
var item = ItemViews.ItemGet(itemId);
if (IsStatusChangeValid())
{
...
}
else
{
...
}
}
public bool IsStatusChangeValid(item)
{
// ONLY IF SET EXISTS
if (item.ItemSets.Count > 0)
{
// CHECK IF ITEM STATUS IS CHANGED TO "CLOSED-VOIDED"
if (newDescription.Equals("Closed-Voided"))
{
// IF THERE ARE NON-VOIDED SETS, DO NOT ALLOW THE STATUS CHANGE
if (item.ItemSets.Any(p => p.SetStatusID != SetStatusIDConstants.Voided))
{
return false;
}
}
}
return true;
}
【问题讨论】:
-
你是如何尝试调用第二种方法的?来自
OnExecute方法的内部?您尝试了什么不起作用(以及为什么不起作用)? -
Sayse:我在 OnExecute 中有一个 if 语句可以执行
if (IsStatusChangeValid) {do work} else {stop and post warning}我已经尝试过IsStatusChangeValid(item)和IsStatusChangeValid(ItemViews item)和IsStatusChangeValid(Item item)第一个在项目下引发错误。后两个从IsStatusChangeValid方法中抛出错误。 -
你是如何尝试使用它的?您的第二个链接在值参数下有一个相当不错的示例
-
对不起。刚刚用我尝试过的内容更新了之前的评论。
-
IsStatusChangeValid(item)是正确的,你得到了什么错误
标签: c# parameters parameter-passing