我一直在c#中创建一个泛型类(它是一个采用给定类型的类,然后表现出该类型的行为),例如List类,它允许您创建某个后定义类型的列表。我想要这样做的原因不太重要,而且比仅提出我的问题更难以解释。我希望能够不断地检查来自另一个类的值,而不必编写除实例化类之外的任何多余代码。这是我的课程代码:
using UnityEngine;
using System.Collections;
public class ValueWatch<T> : MonoBehaviour {
public delegate void OnValueChanged();
private OnValueChanged onValueChanged;
T lastValue;
public ValueWatch(T value, OnValueChanged onValueChanged) {
this.lastValue = value;
this.onValueChanged = onValueChanged;
}
public void checkValue(T value) {
if(!lastValue.Equals(value)) {
onValueChanged();
lastValue = value;
}
}
void Update() {
checkValue (
//this is where I want the value from the original class.
);
}
}
我希望能够写
new ValueWatch<bool>(exampleBool, exampleCallBackMethod);
不调用
ValueWatch.checkValue(exampleBool);
在valueWatch类之外,但我很难找到一种方法来做到这一点。我不想将ValueWatch分配给变量,我希望它是一个单行的东西。我想检索exampleBool并将其与最后一个进行比较,这可能吗?如果我的问题不清楚,我会解决它。我正在使用unity,每帧调用一次更新。