[英]C# construction
我嘗試理解一個Unity示例腳本,並在示例中找到以下代碼:
protected IEnumerator SmoothMovement(Vector3 end) {
float sqrRemainingDistance = (transform.position - end).sqrMagnitude;
while (sqrRemainingDistance > float.Epsilon) {
Vector3 newPosition = Vector3.MoveTowards(rb2d.position, end, inverseMoveTime * Time.deltaTime);
rb2d.MovePosition(newPosition);
sqrRemainingDistance = (transform.position - end).sqrMagnitude;
yield return null;
}
}
public abstract void OnCantMove <T> (T component)
where T : Component;
我真的不明白最后兩行。 他們是什么意思,他們在做什么?
它是一個通用參數,帶有約束條件,表示傳遞給它的任何對象都必須是Component
類型的
那些拖曳線定義了一個抽象方法,該方法不返回任何值,並且期望任何Component
。 任何實現抽象類的類也應實現此抽象方法。
這只是一個方法簽名。 細目如下:
public abstract
一個公共方法,必須在派生類中重寫
void
沒有返回值
OnCantMove
方法名為OnCantMove
<T>(T component)
它需要一個類型參數T
和一個正在調用component
的類型T
的實例。 通常,當您調用此方法來自行確定類型參數時,如果編譯器使用該類型的實例參數,則該編譯器足夠聰明。 因此潛在地,您可以將其稱為<T>
參數。
where T : Component
類型參數T
被約束為Component
類型
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.