聚合根:
public class issue : fullauditedaggregateroot//使用guid作為鍵/識別符號
//使用 settitle() 方法set
public virtual string text //可以直接set,null值也是允許的
public virtual guid? milestoneid //引用其他聚合根
public virtual bool isclosed
public virtual issueclosereason? closereason //乙個列舉型別
public virtual collectionlabels //子集合
protected issue()
//主建構函式
public issue(
guid id, //從呼叫**中獲取guid值
[notnull] string title, //表示標題不能為空.
string text = null,
guid? milestoneid = null) //可選引數
public virtual void settitle([notnull] string title)
/* addlabel和removelabel方法管理labels集合
* 安全的方式(防止兩次新增相同的標籤) */
public virtual void addlabel(guid labelid)
labels.add(new issuelabel(id, labelid));
}public virtual void removelabel(guid labelid)
/* close和reopen方法可保護一致性
* isclosed 與 closereason 屬性. */
public virtual void close(issueclosereason reason)
public virtual void reopen()
}
實體:
public class issuelabel : entity
public virtual guid labelid
protected issuelabel()
public issuelabel(guid issueid, guid labelid)
}
如何寫乙個Stack?
1.棧是陣列 2.先進後出 3.出棧 4.入棧 手寫乙個雙向鍊錶 棧 public class stackpopandpush public stackpopandpush int lens 返回元素個數 public intsize 返回陣列長度,容量,棧資料長 private intcapaci...
ABP 如何寫應用服務
為服務建立資料傳輸物件 dto 服務中的方法 不能返回實體 serializable public class issuedto extensiblefullauditedentitydto public string text public guid?milestoneid public coll...
如何寫乙個鍊錶
有的時候,處於記憶體中的資料並不是連續的。那麼這時候,我們就需要在 資料結構中新增乙個屬性,這個屬性會記錄下面乙個資料的位址。有了這個位址之後,所有的資料就像一條鍊子一樣串起來了,那麼這個位址屬性就起到了穿線鏈結的作用。相比較普通的線性結構,鍊錶結構的優勢是什麼呢?我們可以總結一下 1 單個節點建立...