为什么我们在结构定义中自己定义一个struct对象

时间:2017-07-13 13:18:35

标签: c# struct

在下面的代码中,定义了一个结构。在定义中,有一些结构自己创建。它像镜子中的镜像一样来到我身边,或者将递归函数称为递归函数。因为你定义了一些变量,而变量仍未定义,我的意思是它本身? 它是如何工作的? 为什么我们一般使用它? 有什么影响?

感谢您的解释..

public struct **PersonId**
{
    public static readonly **PersonId** default= new PersonId(value,1,1);
    public static readonly **PersonId** x = new PersonId(someValue, 0, 0);
    public static readonly **PersonId** y = new PersonId(someOtherVale,-1,0);

    [DataMember]
    public int Prop1 { get; private set; }
    [DataMember]
    public int Prop2 { get; private set; }
    [DataMember]
    public int Prop3 { get; private set; }

    public PersonId(int prop1 , int prop2 , int prop3 )
        : this()
    {
        Prop1 = prop1 ;
        Prop2 = prop2 ;
        Prop3 = prop3 ;
    }

1 个答案:

答案 0 :(得分:2)

static视为全局变量 - 您实际上将defaultx以及y声明为全局变量(*)。

如果您无法执行此操作,您希望DateTime.MinValue之类的内容如何运作?

public static readonly DateTime MinValue = new DateTime(0L, DateTimeKind.Unspecified);

请注意,如果您删除https://stackoverflow.com/a/8892920/34092中讨论的static,您的代码将无法编译。

(*)严格来说不是真的,但现在坚持我。