mirror of
https://github.com/simtactics/mysimulation.git
synced 2025-03-15 23:01:21 +00:00
36 lines
628 B
C#
36 lines
628 B
C#
|
using System;
|
|||
|
|
|||
|
namespace FSO.Common.Utils
|
|||
|
{
|
|||
|
public class Promise <T>
|
|||
|
{
|
|||
|
private Func<object, T> Getter;
|
|||
|
private T Value;
|
|||
|
private bool HasRun = false;
|
|||
|
|
|||
|
|
|||
|
public Promise(Func<object, T> getter)
|
|||
|
{
|
|||
|
this.Getter = getter;
|
|||
|
}
|
|||
|
|
|||
|
public void SetValue(T value)
|
|||
|
{
|
|||
|
this.HasRun = true;
|
|||
|
this.Value = value;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
public T Get()
|
|||
|
{
|
|||
|
if (HasRun == false)
|
|||
|
{
|
|||
|
Value = Getter(null);
|
|||
|
HasRun = true;
|
|||
|
}
|
|||
|
|
|||
|
return Value;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|