所以,我有一点问题,我不能完全包裹我的头。因此,我有一个名为Property
的基类,并且我有很多从该类派生的类,如IntProperty
,ColorProperty
等等。现在,我也有一些属于枚举类型的类,目前它们都是单独的类。我想使它成为一个通用的类,但这里有这个问题:在c#中的通用处理#
在代码的不同部分我需要处理所有这些。请记住,我不能为此使用虚拟功能(我正在使用UnityEditor进行一些操作)。
目前,我有一个函数,接受Property
作为参数,然后我这样做了,从物业中获得的所有类型:
if(property is IntProperty)
{
IntProperty intProperty = property as IntProperty;
intProperty.theValue = specific_int_function();
}
这specific_int_function
是所有枚举值privided我有相同从通用的T
。
理想我想这样做(理想跟踪准上下的代码):
(using T)
{
if(property is EnumProperty<T>)
{
EnumProperty<T> enumProperty = property as EnumProperty<T>;
enumProperty.value = (T)my_enum_value_function(typeof(T));
}
}
,我怎么可以让这些代码更好的任何想法?
希望我提供了所有相关信息。
编辑:
这不是这么多,我不能使用虚拟功能的类,但我不能在那个特定的文件调用任何特定功能。我有2个编译组,只有一个可以访问(的人谁知道我在说什么EditorGUI功能),这些功能
问候, 洛林
你可以传递一个函数给处理程序? –
你可以根本不使用虚拟方法,或者只使用虚拟方法吗?我问的原因是因为我的首选方法会在助手类中使用虚拟方法。 – hvd
只要虚拟类可以在不同的文件中移动,它应该没问题。只是不在基类和派生类中。 – Sanctus2099