[英]how does one restrict multiple generics arguments in C# dotnet
您如何“限制”2 個或更多(多個)占位符?
public abstract class MyBaseClass<T> : ISomethingElse<T> where T : struct
{
}
請注意,T 僅限於“結構”,這些年來我已經多次這樣做了。
以上工作正常
現在我想創建一個通用類定義,我想對 T AND K 施加約束。
public abstract class MyBaseClass<T, K> : ISomethingElse<T, K> where T : struct , K : struct
{
}
以上..我無法弄清楚神奇的語法糖。
我知道“容易”。
您可以通過為由空格分隔的每個參數包含where
約束來限制多個通用參數。 因此,在您的代碼片段中,這將如下所示:
public abstract class MyBaseClass<T, K> : ISomethingElse<T, K> where T : struct where K : struct
{
}
或者更易讀的版本是:
public abstract class MyBaseClass<T, K> : ISomethingElse<T, K>
where T : struct
where K : struct
{
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.