Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# atrickRoberts它可能是一个实例方法,但它增加了更多的工作。我正在寻找的相当一部分是采用严重依赖于单例的现有代码库,并使其更易于测试。我有多种方法可以解决这个问题,我正在探索我的选择。 public static class Observer&l_C# - Fatal编程技术网

C# atrickRoberts它可能是一个实例方法,但它增加了更多的工作。我正在寻找的相当一部分是采用严重依赖于单例的现有代码库,并使其更易于测试。我有多种方法可以解决这个问题,我正在探索我的选择。 public static class Observer&l

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

atrickRoberts它可能是一个实例方法,但它增加了更多的工作。我正在寻找的相当一部分是采用严重依赖于单例的现有代码库,并使其更易于测试。我有多种方法可以解决这个问题,我正在探索我的选择。
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