基于Odin的常见小工具ScriptableObjectCreator存在ToHashSet二义性时的解决方案
注:提供给对链式调用不熟悉的人的解决方案
网上随处可见的基于Odin的小工具ScriptableObjectCreator如果发生【以下方法或属性之间的调用具有二义性:“Sirenix.Utilities.LinqExtensions.ToHashSet<T>(System.Collections.Generic.IEnumerable<T>)”和“System.Linq.Enumerable.ToHashSet<TSource>(System.Collections.Generic.IEnumerable<TSource>”】
static HashSet<Type> scriptableObjectTypes = AssemblyUtilities.GetTypes(AssemblyTypeFlags.CustomTypes)
.Where(t => t.IsClass &&
typeof(ScriptableObject).IsAssignableFrom(t) &&
!typeof(EditorWindow).IsAssignableFrom(t) &&
!typeof(Editor).IsAssignableFrom(t)).ToHashSet();
把ToHashSet提出来,限定调用
static HashSet<Type> scriptableObjectTypes = System.Linq.Enumerable.ToHashSet(AssemblyUtilities.GetTypes(AssemblyTypeFlags.CustomTypes)
.Where(t => t.IsClass &&
typeof(ScriptableObject).IsAssignableFrom(t) &&
!typeof(EditorWindow).IsAssignableFrom(t) &&
!typeof(Editor).IsAssignableFrom(t)));
本文来自博客园,作者:rkmao,转载请注明原文链接:https://www.cnblogs.com/rkmao/p/17294762.html