我有课程CategoryPage
,在一些名为navigationHelper_loadState
的地区,有一个名为clickeditem
的函数,其中包含一个参数
public void clickeditem(ItemClickEventArgs Args)
{
function = Args.ClickedItem.ToString();
}
功能是public static string function;
当我尝试在构造函数中调用clickeditem
时,
它需要参数(ItemClickEventArgs Args)
,当我发送给构造函数时,它会成为Null。
我试图创建另一个构造函数,或者只是从另一个公共类调用但是我失败了
你能帮帮我吗?
答案 0 :(得分:0)
如果方法没有为参数提供默认值(通过重载或在参数列表中指定它),则调用者必须提供该值。没有例外。
在您的问题中,当调用者没有要传递function
对象时,您甚至不希望将Args
字段设置为什么。但是为了争论,让我们说你有一些 string
值。
然后你应该改变你的代码,使它看起来更像这样:
public void clickeditem(ItemClickEventArgs Args)
{
SetFunctionFieldValue(Args.ClickedItem.ToString());
}
private void SetFunctionFieldValue(string text)
{
function = text;
}
然后你可以从构造函数中调用相同的方法:
public CategoryPage()
{
SetFunctionFieldValue("some field value");
}
当然,我会注意到实际行为是微不足道的:你只是设置一个字段的值。所以在我看来,另一种方法是简单地在构造函数中设置字段值:
public CategoryPage()
{
function = "some field value";
}
然后你可以单独留下事件处理程序方法。
如果您甚至没有string
值来分配function
字段,那么我不知道您实际要求做什么。您的示例中的所有clickeditem()
方法都设置为该字段,那么如果您没有将字段设置为值,为什么还要从构造函数中调用它? :)