获取并设置返回空属性的字符串属性

时间:2019-01-20 08:56:40

标签: c# .net

我正在尝试使用以下代码来获取和设置属性。 但是当尝试使用控制台打印属性时,它返回一个空字符串。为什么没有设置属性?

using System;

public class Program
{
    public static void Main()
    {
        myclass x=new myclass();
        x.myproperty="test";
        Console.WriteLine(x.myproperty);
    }
     class myclass{
        string sample;
        public string myproperty
        {
            get { return sample;}
            set {sample=myproperty;}
        }
    }
}

2 个答案:

答案 0 :(得分:4)

在setter中,您应该使用value为基础字段分配新值
改用它

public string myproperty
{
    get { return sample; }
    set { sample = value; }
}

或在C#7

public string myproperty
{
    get => sample; 
    set => sample = value; 
}

编辑

如@ bradbury9所述,您也可以使用auto-implemented properties,如果您不希望gettersetter中的任何其他逻辑,而不仅仅是获取并设置,就可以使用这种情况字段,如果是这种情况,则可以在代码段

下使用
 public string myproperty { get; set; }

答案 1 :(得分:0)

value关键字对于设置值很重要。在Visual Studio中,可以使用propfull + double选项卡来避免此类常见错误。它将通过快捷方式创建完整属性。

这是解决方案

public class temp_shared_context {

public static Context ctx = null;

public static Context getCtx() { return ctx; }

public static void setCtx(Context ctx) { temp_shared_context.ctx = ctx; }
}