zoukankan      html  css  js  c++  java
  • 2019-8-31-dotnet-方法名-To-和-As-有什么不同

    title author date CreateTime categories
    dotnet 方法名 To 和 As 有什么不同
    lindexi
    2019-08-31 16:55:58 +0800
    2019-7-24 8:0:33 +0800
    dotnet

    在看到 dotnet 框架里面有很多方法里面用了 ToXx 和 AsXx 好像都是从某个类转换为另一个类,那么这两个方法命名有什么不同

    在约定的方法命名里面,用 To 的方法表示从类 A 转为类 B 同时这两个类将没有任何关联,也就是对类 B 做的内容不会影响到原有的类 A 例如 ToString 方法

                var str = new StringBuilder();
                var foo = str.ToString();

    上面代码的 str 在调用 ToString 方法之后,返回值将和原来的 StringBuilder 没有关系

    而在用 As 的方法表示转换类之后,转换的类和原有的类有关联,例如 List 的 AsReadOnly 方法

                var foo = Enumerable.Range(0,100).ToList();
                var readOnlyCollection = foo.AsReadOnly();
                Console.WriteLine(readOnlyCollection.Count); // 100
                foo.RemoveAt(0);
                Console.WriteLine(readOnlyCollection.Count); // 99

    虽然调用 AsReadOnly 返回了 ReadOnlyCollection 类型,但是原有的 foo 和 readOnlyCollection 是有关联的,对 foo 的修改将会影响转换类的值如上面代码,将 foo 移除了第一个之后,相应的值也会修改

    在方法命名里面用 To 开始的表示转换类,同时转换的类和原有的没有关联,而使用 As 开始的表示从观测角度可以作为另一个类观测,转换的类和原有的存在关联

  • 相关阅读:
    Visual Studio开启SSL的支持
    Linux下ls命令使用详解(转)
    Linux下which命令使用详解(转)
    SQLServer出现不允许保存更改的问题解决
    Mac下包管理平台homebrew的使用
    Jenkins使用FTP进行一键部署及回滚2(Windows)(项目实践)
    TGI
    房地产 专题
    Anaconda
    推荐《用Python进行自然语言处理》中文翻译-NLTK配套书
  • 原文地址:https://www.cnblogs.com/lindexi/p/12085926.html
Copyright © 2011-2022 走看看