• 【转】编写高质量代码改善C#程序的157个建议——建议125:避免用FCL的类型名称命名自己的类型


    建议125:避免用FCL的类型名称命名自己的类型

    试想过自己写一个Socket类型吗?如果没有,我们来尝试一下:

    public class Socket
    {
     //省略   
    }

    把以上代码同某些其他工具类封装到某个dll里,让其他人调用。调用者代码如下:

    public class SampleInvoker
    {
        public void DoSomethingWithSocket()
        {
            Socket socket=new Socket();
            //省略   
        }       
    }

    接着编译、运行程序,我们会发现编译没有报错,程序运行也很好。我相信,看到这段代码的人员,可能都会认为我们是在使用FCL的Socket类型,而不会想到开发者在这里使用的是一个自定义的Socket类型。如果足够幸运,调用者将FCL的Socket命名空间也引入进来了,编译器会提示我们Socket的应用指示不明确。但是多数情况下,事情也许不会这么凑巧让调用者发现这个问题。想象如果发生这种情况,我们会埋下多少陷阱。

    应该尽量避免在可见范围内命名重复的类型,尤其是要避免与FCL中的类型重名。当然,这很大程度上依赖于我们对FCL类型的熟悉程度。如果对某个类型的命名没有把握,应当首先查询一下MSDN。记住,如果出现疑问,MSDN是解释的首选位置。

    转自:《编写高质量代码改善C#程序的157个建议》陆敏技

  • 相关阅读:
    Python 集合
    Python sorted()
    CodeForces 508C Anya and Ghosts
    CodeForces 496B Secret Combination
    CodeForces 483B Friends and Presents
    CodeForces 490C Hacking Cypher
    CodeForces 483C Diverse Permutation
    CodeForces 478C Table Decorations
    CodeForces 454C Little Pony and Expected Maximum
    CodeForces 313C Ilya and Matrix
  • 原文地址:https://www.cnblogs.com/farmer-y/p/8006271.html
Copyright © 2020-2023  润新知