C# atrickRoberts它可能是一个实例方法,但它增加了更多的工作。我正在寻找的相当一部分是采用严重依赖于单例的现有代码库,并使其更易于测试。我有多种方法可以解决这个问题,我正在探索我的选择。 public static class Observer&l
atrickRoberts它可能是一个实例方法,但它增加了更多的工作。我正在寻找的相当一部分是采用严重依赖于单例的现有代码库,并使其更易于测试。我有多种方法可以解决这个问题,我正在探索我的选择。C# atrickRoberts它可能是一个实例方法,但它增加了更多的工作。我正在寻找的相当一部分是采用严重依赖于单例的现有代码库,并使其更易于测试。我有多种方法可以解决这个问题,我正在探索我的选择。 public static class Observer&l,c#,C#,atrickRoberts它可能是一个实例方法,但它增加了更多的工作。我正在寻找的相当一部分是采用严重依赖于单例的现有代码库,并使其更易于测试。我有多种方法可以解决这个问题,我正在探索我的选择。 public static class Observer<T> { public static Action<T> Trigger = (x) => { }; } Observer<Player>.Trigger += OnPlayerChan
public static class Observer<T>
{
public static Action<T> Trigger = (x) => { };
}
Observer<Player>.Trigger += OnPlayerChange;
Observer<Player>.Trigger(p);
public static class Observer<T>
{
public static Action<T> Trigger = (x) => {
referenceToALotOfMemory = new byte[100000];
};
private static byte[] referenceToALotOfMemory;
public static void IAmDoneWithThisType() {
referenceToALotOfMemroy = null;
}
}
Observer<Player>.Trigger += OnPlayerChange;
Observer<Player>.Trigger(p);
Observer<Player>.Trigger -= OnPlayerChange;
Observer<Player>.IAmDoneWithThisType();
public class Observer<T>
{
public Action<T> Trigger = (x) => {
referenceToALotOfMemory = new byte[100000];
};
private byte[] referenceToALotOfMemory
}
var observer = new Observer<Player>();
observer += OnPlayerChange;
observer.Trigger(p);
observer -= OnPlayerChange;
//let the garbage collector cleanup referenceToALotOfMemory when the time is right