表实体中定义的表属性

时间:2017-01-06 15:40:00

标签: c#

我这里有一个表实体:

std::conjunction<...>

有人可以为我解释这部分代码吗?

[Table("Table")]
public class Table
{
    public long A{ get; set; }
    public long B{ get; set; }

    public Table() 
    { 

    }

    public Table(long a, string b)
    {
        A = a;
        B = b;   
    }
}

这部分是做什么的,一种自定义的方法?为什么public Table() { } public Table(long a, string b) { A = a; B = b; } 之后没有任何关键字?例如public这样的事情?下一部分在做什么?

3 个答案:

答案 0 :(得分:1)

这些是constructors。第一个是无参数的,当你使用没有参数来实例化类时调用它:

Table table = new Table();

请注意,序列化等通常需要无参数构造函数。

第二个值接受两个long值作为参数,并使用它们初始化两个公共属性。它在实例化类时使用:

Table table = new Table(1, 1);

这里我也假设你在问题中输了一个拼写错误,构造函数实际上定义为:

public Table(long a, long b) { /*...*/ }

这是因为公共属性的类型为long,而不是字符串,构造函数将B设置为b的值。

答案 1 :(得分:1)

构造函数已重载,以初始化为

Table table = Table(121, "My Table");

Table table = Table();

有时外部库需要空构造函数,或者代码可维护性(代码清洁)。

答案 2 :(得分:1)

// This is a "default" constructor
public Table() 
{ 

}

// This is an overloaded constructor 
// allowing the consumer to pass two variables in 
// that get set to the class properties A and B
public Table(long a, string b)
{
    A = a;
    B = b;          
}

&#34; public&#34;之后没有关键字因为这是定义构造函数语法的方式。

欲了解更多信息,请阅读:https://msdn.microsoft.com/en-us/library/ms173115.aspx