property / field的含义与其类具有相同的类型

时间:2016-12-18 18:54:08

标签: c#

我在c#中有下一个代码:

var qry = db.knex
  .select(db.knex.raw("array_agg(t2.id) as session_ids, date_trunc('hour', t2.start_timestamp) as hour"))
  .count('*')
  .from('sessions as t2')
  .groupByRaw("date_trunc('hour', t2.start_timestamp)")
  .orderBy(db.knex.raw("date_trunc('hour', t2.start_timestamp)"));

class Person { private Person variable; // what this line mean .... } 的类型对于“人”是什么意思? ?它尚未完全定义......为什么会使用这样的类?

1 个答案:

答案 0 :(得分:0)

类具有自己类型的变量是很常见的。标准情况 - 二叉树的元素:

 class TreeNode
 {
       public int Data {get;set;}
       public TreeNode Left {get;set;}          
       public TreeNode Right {get;set;}
 }

这意味着类的实例以某种方式将引用到与其相关的其他实例。通常它是某种亲子(如上面的样本)或所有权关系(即CarComponent有更多CarComponent类似引擎有阀门。

至于这种构造的命名 - 没有通用的名称。有时使用“递归类”或“自引用类”,但我的知识没有正式名称。

注意:class是引用类型,添加对与field相同类型的实例的引用是完全正常的。请注意,这不适用于struct(因为数据必须是同一对象的一部分)。