从另一个方法

时间:2015-04-23 13:26:20

标签: c# parameters parameter-passing

我有一个on execute方法,它有变量" 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;
}

1 个答案:

答案 0 :(得分:5)

您在代码中犯了两个错误

  1. 方法声明
  2. 您必须定义参数的类型

    public bool IsStatusChangeValid(Item item)
    
    1. 您必须将项目传入方法
    2. 的调用中
      if(IsStatusChangeValid(item))