定义一个值和使用类/构造函数的get / set之间的区别是什么?

时间:2014-01-18 19:11:26

标签: c# class constructor

为了努力学习,我试图找出在创建类和使用get时定义值之间的区别;组;我不知道用自己查找答案的术语。任何帮助将不胜感激。是否有某种情况你会使用另一种情况。我一直在用get;组;一段时间,但更多的是习惯问题,而不是因为我理解为什么。

示例:

public class Post
{
     public Guid guid = new Guid();
     public Guid userguid { get; set; } 
}

2 个答案:

答案 0 :(得分:4)

{ get; set; }制作auto-implemented property。您不能在其声明中为该属性设置默认值,因此您必须使用构造函数。

public class Post
{
    public Guid userguid { get; set; }  

    public Post()
    {
        guid = new Guid();
    }
}

您可以使用支持字段实现自己的非自动属性并设置字段默认值。这样您就不必在构造函数中实现它:

public class Post
{
    private Guid _guid = new Guid();

    public Guid userguid
    {
        get { return _guid; }
        set { _guid = value; }
    }
}

走哪条路?这真的是基于意见的。

要阅读的内容:

答案 1 :(得分:2)

您正在寻找的术语是“属性”。

public Guid userguid { get; set; } 

相当于:

private Guid guid;

public Guid GetGuid() {
   return guid;
}

public Guid SetGuid(Guid value) {
   guid = value;
}

有关详情,请参阅:http://msdn.microsoft.com/en-us/library/x9fsa0sw.aspx