C# Private set,get返回null/empty?

C# Private set,get返回null/empty?,c#,C#,我无法检索返回名称的结果 // private string testName; public string ReturnName { private set { testName = "MyName"; } get { return testName; } } // string i = data.ReturnName; 你应该这样做: public string ReturnName { get { return "MyName"; } } // string

我无法检索返回名称的结果

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

//
string i = data.ReturnName;

你应该这样做:

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;

您的代码从不设置
ReturnName

如果您是从另一个类调用,
ReturnName
始终为空,因为您无法从它设置值。它将返回的唯一时间是在同一类的属性上设置任何值时,但返回的值是
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
}