我是编码界的新手,正在努力学习。我正在努力理解.dll是如何编写的,它的目的是什么。我对它进行了反编译,并将其作为VS中的程序集打开。我通过查看它的结构学到了一些东西,并解决了重新编译它时出现的大多数错误。但我最终还是被卡住了。这是代码:
public Request_NSBD FormRequest
{
get =>this._request
private set
{
this._request = value;
}
}
我在第003行中得到错误CS1043、CS1513和CS0161,在第004行得到错误CS1002和CS1513。有人能向我解释为什么我会出现这些错误以及如何修复它们吗?我在网上查了CSxxxx,不明白出了什么问题。如果我听从VS的建议,错误会变得越来越"严重"。我非常感谢你在这方面给我的任何见解。
我是一名机械师,我学习东西的方法是打开它们,看看里面是什么。我发现代码也是如此,也许我错了。
看起来您正试图创建一个属性来获取/设置类型为Request_NSBD
的局部变量_request
。尝试将您的代码更改为:
public Request_NSBDFormRequest
{
get { return this._request; }
set { this._request = value; }
}
正如上面chris所提到的,以某些风格编写的代码利用了新的语言特性,并且可能不会随每个版本一起编译。除非您熟悉某些语言语法,否则最好使用更常见的实现模式。
要声明属性,有很多方法。。。
旧方法(如果你想对你的内部属性进行一些检查,仍然有用):
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";