.Net3之后,微软提供了实例初始化,设置属性的简单写法。废话不多,看下面两段等价代码。 Public class SaveError { public bool IsRetry { get; private set; } public bool IsIgnore { get; private set; } public bool IsSave { get { return FileName != null; } } public string FileName { get; private set; } private SaveError() {} public readonly static SaveError Retry = new ChooseSaveErrorResult { IsRetry = true }; public readonly static SaveError Ignore = new ChooseSaveErrorResult { IsIgnore = true }; public static SaveError SaveFile(string FileName) { return new SaveError { this.SaveError = FileName }; } } 复杂写法 Public class SaveError { private bool isRetry; private bool isIgnore; private bool isSave; private string fileName; public bool IsRetry { get{return isRetry;} private set{isRetry=value;} } public bool IsIgnore { get{return isIgnore;} private set{isIgnore=value;} } public bool IsSave { get{return isSave;} private set{isSave=value;} } public string FileName { get{return fileName!=null;} } private SaveError() {} public readonly static SaveError Retry = new ChooseSaveErrorResult (); Retry.IsRetry = true; public readonly static SaveError Ignore = new ChooseSaveErrorResult (); Ignore.isIgnore = true; public static SaveError SaveFile(string FileName) { SaveError temp = SaveError(); temp.FileName = FileName; return temp; } } 如果是多个属性,中间用逗号隔开。 public readonly static SaveError RetryAndIgnore = new ChooseSaveErrorResult {IsRetry=true,IsIgnore=true};