从较新版本的 Visual Studio/.NET 中了解此符号 [重复]

Understanding this symbol from newer version of Visual Studio/.NET [duplicate]

提问人:TrojanNemo 提问时间:8/22/2023 更新时间:8/22/2023 访问量:42

问:

我使用 Visual Studio 2013,主要使用 .NET Framework 4.0。

最近我不得不查看 Unity/Visual Studio 2021 中的一些代码?它有一些我以前从未见过的东西,那就是将 VS2013 抛出一个循环。

public override bool CanRead => _fileStream.CanRead;
public override bool CanSeek => _fileStream.CanSeek;
public override long Length => _fileStream.Length;

public override long Position
{
    get => _fileStream.Position;
    set => _fileStream.Position = value;
}

public override bool CanWrite => false;

是否可以使此代码向后兼容VS2013?如果是这样,我该如何适应它?我在这个环境中有超过 100,000 行代码,所以我无法轻松更新目标框架。感谢您的帮助。

我尝试删除 => 部分并仅拥有定义,但这最终不起作用,因为 VS2013 说每个定义都没有可行的覆盖。

C# unity-game-engine 重写 声明

评论

0赞 Flydog57 8/22/2023
@Pawe łŁukasik 的链接描述了属性,但它也适用于琐碎的方法。
0赞 TrojanNemo 8/22/2023
是的,这解释了它。我能够重写声明,因此 VS2013 可以处理它们。谢谢!

答:

1赞 Yogi 8/22/2023 #1

该代码使用 C# 的表达式主体成员功能。

下面是此目的的等效代码:

public override bool CanRead
{
    get { return _fileStream.CanRead; }
}

public override bool CanSeek
{
    get { return _fileStream.CanSeek; }
}

public override long Length
{
    get { return _fileStream.Length; }
}

public override long Position
{
    get { return _fileStream.Position; }
    set { _fileStream.Position = value; }
}

public override bool CanWrite
{
    get { return false; }
}