簡體   English   中英

如何將 Type 參數限制在某個接口上

[英]how to constraint the Type parameter to a certain interface only

是否可以將 Type 參數限制為僅允許調用者傳入實現某個接口的類類型? 以下面為例:

public void RegisterProcessors(params Type[] types)

現在,調用者可以將任何類類型傳遞給此方法。 例如:

RegisterProcessors(typeof(string));  

但我真正想要的是只允許調用者傳入實現 IProcessor 接口的類型。 那可能嗎? 像下面這樣的東西,當然,下面在語法上是錯誤的

public void RegisterProcessors(params Type<IProcessor>[] types)

不,基本上。 如果您使用的是泛型,則可以使用

public void RegisterProcessor<T>() where T : IProcessor

但是您不能將它與params結合使用,因此調用者需要對每種類型調用一次。 這可能沒問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM