自动财产作为价值

时间:2014-11-23 04:45:27

标签: c# out tryparse

为什么我不能将AutoProperty用作out参数?

例如(这给我一个错误):

public int HeightValue { get; set; }

//...

private void Parse()
{
    int.TryParse(WidthText.Text, out HeightValue);
    //Intellisense Error: out argument is not classified as a variable
}

2 个答案:

答案 0 :(得分:1)

可能因为属性本​​质上是方法,您需要提供一个字段来将值设置为out参数。您可以为属性定义支持字段,并将其值作为out参数。

请参阅Jon Skeet的答案:

Passing a property as an 'out' parameter in C#

答案 1 :(得分:0)

该方法本身需要一个变量作为out参数。它必须有一个存储位置,它只能写入值。不是属性,也不是它需要调用的任何东西:只是一个存储位置。财产不满足该要求。因此,方法中的编译器无法做到这一点。