【发布时间】:2012-07-27 08:19:06
【问题描述】:
我编写了一个类来检测我的 UI 上的按钮按下,但它什么也不做。当代码运行时,我编写的 UI 管理器类会查找按钮并将它们存储在一个列表中。
我的问题是我希望不同的按钮具有不同的功能,但都可以从同一个 UI 管理器中执行。我有一个名为“按钮信息”的第三个类,我想保存对按钮函数类的引用,但我不知道该怎么做。
基本上,我希望按钮类是这样的:
using System.Collections;
using System.Collections.Generic;
public class ButtonInfo
{
public int States;
public int CurrentState;
public int Animations;
public void ButtonFunction<T>(); <--- This is the issue!
}
这是在 Unity Engine 中,所以不能使用 C# 的最新功能,但我相信这一定是可能的。
我希望上面类中的“ButtonFunction”能够携带任何类而不是具体的。
有可能吗?
干杯,
C.
【问题讨论】:
-
你能把
T替换为所有按钮中的通用基类还是object?我犹豫是否将此作为答案发布,因为我不确定它是否特定于 Unity。 -
你能用一个接口对象列表代替泛型吗?然后,您要调用的每个类都可以实现此接口,然后可以将其存储在列表中,并在需要时使用已定义的签名进行调用。
标签: c# list generics delegates unity3d