c# - 处理嵌套属性值

标签 c#

访问嵌套属性值的优雅解决方案是什么?

示例:
在某些情况下,它可能如下所示:

public void someFunction()
{
    this.Device.ResponseHandler.Process(this.Device.TcpClient.responseMessage, this.Device.TcpClient.responseType)
}

我的解决方案是复制对象,只是为了在之后缩短名称。

public void someFuntion()
{
    // Just for shorten the access name afterwards
    ResponseHandler responseHandler = this.Device.RepsonseHandler;
    TcpClient tcpClient = this.Device.TcpClient;

    responseHandler.Process(tcpClient.responseMessage, tcpClient.responseType);
}

最佳答案

主要是基于意见,但一般有两种方式:

  1. 您正在使用的那个。

  2. 在新行中列出每个参数:

    public void someFunction()
    {
        this.Device.ResponseHandler.Process(
            this.Device.TcpClient.responseMessage,
            this.Device.TcpClient.responseType
        );
    }
    

IMO 两者都同样可读,在第二种方法中你不需要其他变量:)

关于c# - 处理嵌套属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58027969/

相关文章:

c# - 如果字符串参数以文件扩展名结尾,则请求 session 对象为空

c# - 如何在多线程 C# 中使用 TCP 客户端/监听器?

c# - 简化 Linq 表达式

c# - entityframework 已经有一个与此命令关联的打开的 DataReader,必须先将其关闭

c# - 如何在 Avalonia 表单中强制键盘输入焦点

c# - 在 C# 中构建 wParam 或 lParam 的好方法是什么? (比轮类运算符(operator)更友好的东西吗?)

javascript - 在使用 CefSharp 加载远程 JavaScript 时修改它们?

c# - LINQ 仅当其中一个字段是特定值时才对多个字段进行分组

c# - LINQ 的 Cast 方法表现出意外

c# - EF Core 1.1 迁移 - 当前的 CSharpHelper 无法构建类型文字