如何将常规属性转换为自动属性C#

时间:2019-05-21 12:02:32

标签: c#

var fs = require('fs')
var xml = fs.readFileSync("xmlFile.xml")
var key = fs.readFileSync("privateKey.key")

var SignedXml = require('xml-crypto').SignedXml
var sig = new SignedXml()
...
sig.signingKey = key
sig.computeSignature(xml)
...

我想将这些属性转换为自动属性,如C#6的示例。他们会是什么样子?

public class MsException : BaseException { private readonly string _error; private readonly string _message; public MsException(int id) { var code = (Enum)errorId; _error = code.ToString(); _message = code.GetNames(); } public override string StatusCode => _error; public override string Message => _message; } 中,我又有两个属性BaseExceptionstring StatusCode

任何帮助将不胜感激。我需要一些如何做的例子。

3 个答案:

答案 0 :(得分:2)

如果基类中有StatusCodeMessage。您正在继承该基类,并希望为基类属性设置值,那么您只需将值分配给该属性

public class MsException : BaseException
   { 
   public MsException(int id)
      {
         var code = (Enum)errorId;

         this.StatusCode = code.ToString();
         this.Message = code.GetNames();
      }
   }

您的BaseException类可能看起来像

public class BaseException
{
    public string StatusCode {get; set;};
    public string Message {get; set;}

}

答案 1 :(得分:1)

由于您覆盖了BaseException中的属性,因此这里有些混乱,因为它们已经存在,这不是一个好主意。

因此,您可以仅使用现有的这些属性,而无需创建新的属性。

也许你可以解释为什么需要这个。

答案 2 :(得分:1)

public class MsException : BaseException
{ 
    public MsException(int id)
    {
        var code = (Enum)errorId;

        StatusCode = code.ToString();
        Message = code.GetNames();
    }
}

类似的事情可能会起作用。