VS错误初学者

时间:2015-12-14 19:04:24

标签: c# .net visual-studio decompiling

我是编码世界的新手并且正在努力学习。我试图理解.dll是如何编写的,它的意图是什么。我反编译它并在VS中作为程序集打开它。通过查看它的结构我学到了一点,我解决了重新编译时弹出的大部分错误。但我最终陷入困境。这是代码:

public Request_NSBD FormRequest
{
    get =>this._request              
    private set
    {
        this._request = value;
    }     
}

我在第003行遇到错误CS1043,CS1513和CS0161,在第004行收到错误CS1002和CS1513。任何人都可以向我解释为什么我会收到此错误以及如何解决这些错误? 我在网上查了CSxxxx并且无法理解错误。如果我遵循VS的建议,错误会变得更多,而且更糟糕的是#34;我非常感谢您对此给予的任何见解。

我是一名机械师,我学习东西的方法就是打开它们,看看里面是什么。我发现代码也是一样,也许我错了。

2 个答案:

答案 0 :(得分:1)

看起来您正在尝试创建一个属性来获取/设置类型_request的局部变量Request_NSBD。尝试将代码更改为:

public Request_NSBDFormRequest
{
   get { return this._request; }
   set { this._request = value; }
}

如上面的chris所述,以某些样式编写的代码利用了新的语言功能,并且可能无法编译每个版本。除非您熟悉某些语言语法,否则最好使用更常见的实现模式。

答案 1 :(得分:0)

申报财产,你有很多方法......

旧方法(如果您想对内部属性执行某些检查,仍然有用):

public Request_NSBD FormRequest
{
    get { return _request; }
    private set { _request = value; }
}

新版本的C#允许您声明您的属性:

public Request_NSBD FormRequest { get; private set; }

现在关于你使用的语法,它是表达体和旧方式声明的混合。

如果你想写一个只读属性,你会写这样的东西:

public string MyString
{
    get
    {
        return "My string value";
    }
}

这相当于此(使用表达式主体):

public string MyString => "My string value";