私有集,并返回null / empty?

时间:2013-04-17 00:59:30

标签: c#

我无法检索ReturnName

的结果
//
private string testName;
public string ReturnName
{
    private set { testName = "MyName"; }
    get { return testName; }
}

//
string i = data.ReturnName;

3 个答案:

答案 0 :(得分:8)

你应该这样做:

public string ReturnName
{
    get { return "MyName"; }
}

//
string i = data.ReturnName;

如果您只是返回硬编码值,则不需要该集。更重要的是,你得到错误的原因是因为你可能永远不会调用set。如果你想要一个默认值,那么你应该做更多这样的事情:

private string testName = "MyName";
public string ReturnName
{
    private set { testName = value; }
    get { return testName; }
}

//
string i = data.ReturnName;

答案 1 :(得分:3)

您的代码永远不会设置ReturnName

答案 2 :(得分:3)

如果您从另一个班级打电话,ReturnName始终为空,因为您无法从中设置值。它返回MyName的唯一时间是在同一个类的属性上设置任何值,但返回的值为MyName

考虑以下示例,

public Class SampleClass
(
    private string testName;
    public string ReturnName
    {
        private set { testName = "MyName"; }
        get { return testName; }
    }

    public void MethodName()
    {
        ReturnName = "hello";
        Console.WriteLine(ReturnName);
    }
)

public class Main
{
    SampleClass _x = new SampleClass();
    Console.WriteLine(_x.ReturnName);     // will output EMPTY
    _x.MethodName();                      // will output MyName
}