【问题标题】:Pass in variable instance from another method从另一个方法传入变量实例
【发布时间】: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


【解决方案1】:

你的代码中有两个错误

  1. 方法的声明

您必须定义参数的类型

public bool IsStatusChangeValid(Item item)
  1. 您必须在方法调用中传入一个项目
if(IsStatusChangeValid(item))

【讨论】:

  • 并且没有更多错误。谢谢您的帮助。你很有帮助。
  • @AtlasBowler - 别担心,我刚刚看到MSDN has a page on passing parameters,您可能会发现它更有用
  • 谢谢!我会调查的
猜你喜欢
  • 1970-01-01
  • 2012-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-21
  • 2023-03-08
  • 1970-01-01
相关资源
最近更新 更多