我刚刚为 Jon Skeet 的 Unconstrained Melody 项目安装了 nuget 包,但是当我尝试使用它时,编译时出现错误:



函数定义:

public void SetEnum<T>() where T : struct, IEnumConstraint {}

我错过了什么吗?我不应该使用 nuget 包吗?

最佳答案

我可能是错的,但看起来虽然这个库在内部使用 IEnumConstraint,并让它与文章中描述的 postbuild 步骤一起工作,但它并没有为您提供任何魔法,让您直接为自己的方法使用 IEnumConstraint

文章中描述的 GetValues<T> 方法是 UnconstrainedMelody.Enums 类提供的几种方法之一。还有其他可用的对象和方法。

如果您想将自己的泛型方法限制为枚举,您可以按照 Jon 用于构建此库的相同步骤,但在您自己的库上。在如何使用 PostSharp 执行此操作的评论中也有 this example

关于c# - 无约束旋律错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16340390/

10-13 03:31