代码中的Status和State语义

代码中的Status和State语义

State:用于描述某个对象的整体状态,是被描述对象的多个参数的载体,在将来,它将持久地承载这些参数,但这些参数的值可能改变。

例如:C#中 Begin/End 形式的异步方法中的 state 参数和 AsyncState 属性:

public class Socket : IDisposable
{
    // ...
    public IAsyncResult BeginAccept(AsyncCallback callback, object state);
    // ...
}

public interface IAsyncResult
{
    // ...
    object AsyncState { get; }
    // ...
}

Status:用于描述某个可分为多个阶段的持续过程所处的阶段,在将来,随着阶段的转变,这一状态可能会转变为其他状态。

例如:C#中 System.Threading.Tasks.TaskStatus 属性:

public class Task : IThreadPoolWorkItem, IAsyncResult, IDisposable
{
    // ...
    public TaskStatus Status { get; }
    // ...
}

public enum TaskStatus
{
    Created = 0,
    WaitingForActivation = 1,
    WaitingToRun = 2,
    Running = 3,
    WaitingForChildrenToComplete = 4,
    RanToCompletion = 5,
    Canceled = 6,
    Faulted = 7
}
发布了76 篇原创文章 · 获赞 131 · 访问量 39万+

猜你喜欢

转载自blog.csdn.net/qq_21397217/article/details/104609830