簡體   English   中英

CodeDom泛型類型約束

[英]CodeDom generic type constraint

有沒有辦法用CodeDom生成類約束。

因為當我使用類似的東西

var method = new CodeMemberMethod();
var genericParam = new CodeTypeParameter("InterfaceType");
genericParam.Constraints.Add("class");
method.TypeParameters.Add(genericParam);

生成的代碼就像

private InterfaceType GetImpl<InterfaceType>()
    where InterfaceType : @class
{
}

我發現最好的解決方法是在課前使用前導空格

genericParam.Constraints.Add(" class");

但這似乎充其量只是一種解決方法。

似乎沒有直接的方法來指定該約束。 對於“struct”約束都沒有。

對於“T:new()”約束,使用標志HasConstructorConstraint

對於其余部分,請使用此msdn示例中的 CodeTypeReference。

我也使用零寬度空間( "\\x200Bclass" )而不是普通空間。 然后我在最后一個字符串中用空字符串替換它: .Replace("\\x200B", string.Empty);

暫無
暫無

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

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