通用类值检查c#

时间:2014-07-25 04:04:38

标签: c# generics unity3d

我一直在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,每帧调用一次更新。

0 个答案:

没有答案