我这里有一个表实体:
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
这样的事情?下一部分在做什么?
答案 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