[英]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.