//This does not compilenameof(IGenericInterface<>.Method)//This would compiletypeof(IGenericInterface<>)
我认为这应该是有效的C#6或者我错过了一些东西,或者他们是一个更好的方法来做到这一点.我不想使用方法名称的字符串,就好像方法被重命名的代码会中断而没有任何构建时间错误.
解决方法 这是预期的.根据 documentation,您的表达式是不允许的,因为它是指未绑定的通用类型:Because the argument needs to be an Expression syntactically,there are many things disallowed that are not useful to List. The following are worth mentioning that produce errors: predefined types (for example,
int
orvoID
),nullable types (Point?
),array types (Customer[,]
),pointer types (Buffer*
),qualifIEd alias (A::B
),and unbound generic types (Dictionary<,>
),preprocessing symbols (DEBUG
),and labels (loop:
).
您可以通过提供通用参数来解决此限制:
nameof(IGenericInterface<object>.Method)
注意:我认为微软应该调整name的功能,以允许引用未绑定的通用类型的方法.
总结以上是内存溢出为你收集整理的c# – 名称与泛型类型全部内容,希望文章能够帮你解决c# – 名称与泛型类型所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)