using System; using System.Threading.Tasks; namespace Kean.Infrastructure.NoSql.Redis { /// /// 字符串类型 /// public sealed class String : IValue { /// /// 初始化 Kean.Infrastructure.NoSql.Redis.String 类的新实例 /// internal String() { } /// /// 读值处理 /// internal event Func> OnGet; /// /// 写值处理 /// internal event Func OnSet; /// /// 获取字符串值 /// /// 键 /// 字符串值 public Value this[string key] { get { var value = new Value(key); value.OnGet += OnGet; value.OnSet += OnSet; return value; } } /// /// 字符串值 /// public sealed class Value { private readonly string _key; /// /// 初始化 Kean.Infrastructure.NoSql.Redis.String.Value 类的新实例 /// /// internal Value(string key) => _key = key; /// /// 读值处理 /// internal event Func> OnGet; /// /// 写值处理 /// internal event Func OnSet; /// /// 读取字符串值 /// /// public Task Get() => OnGet(_key); /// /// 写入字符串值 /// /// 值 public Task Set(string value) => OnSet(_key, value); } } }