自定义一个包含过期时间属性的类
public class Expirable<T>
{
public T Value { get; set; }
public DateTime ExpireTime { get; set; }
public Expirable(T value, TimeSpan expiresIn)
{
Value = value;
ExpireTime = DateTime.UtcNow + expiresIn;
}
public bool IsExpired => DateTime.UtcNow >= ExpireTime;
}
在实例化一个
Expirable
对象时,传入所需要赋值的对象和过期时间;在访问该对象时,检查其过期时间是否已经过期,如果过期则清空该对象。
示例代码如下:
class Program
{
static void Main(string[] args)
{
Expirable<string> expirable = new Expirable<string>("hello", TimeSpan.FromSeconds(5));
// 模拟循环检查过期时间
while (true)
{
if (expirable.IsExpired)
{
expirable = null;
}