zoukankan      html  css  js  c++  java
  • Effective C# 学习笔记(十) 用可选参数尽量减少方法重载

    先看个例子,创建word文档,并在其中写一行话

    var wasted = Type.Missing;

    var wordApp = new

    Microsoft.Office.Interop.Word.Application();

    wordApp.Visible = true;

    Documents docs = wordApp.Documents;

    //这个方法传了四个参数,但都不是开发人员想传的,能不能在需要时再传有用的参数,而不必每次都补空值呢?

    Document doc = docs.Add(ref wasted,

    ref wasted, ref wasted, ref wasted);

    Range range = doc.Range(0, 0);

    range.InsertAfter("Testing, testing, testing. . .");

     

    下面这个代码就展现了可选参数的作用

     

    var wordApp = new

    Microsoft.Office.Interop.Word.Application();

    wordApp.Visible = true;

    Documents docs = wordApp.Documents;

    //简介很多吧? :)

    Document doc = docs.Add();

    Range range = doc.Range(0, 0);

    range.InsertAfter("Testing, testing, testing. . .");

     

    要想独立地定义些参数,而不想给其他参数都付空值可以利用C#的命名参数的新特性

    var wordApp = new

    Microsoft.Office.Interop.Word.Application();

    wordApp.Visible = true;

    Documents docs = wordApp.Documents;

    object docType = WdNewDocumentType.wdNewWebPage;

    //使用了命名参数 DocumentType,这样的可读性也很好,你知道 docType参数到底是传给谁了

    Document doc = docs.Add(DocumentType : ref docType);

    Range range = doc.Range(0, 0);

    range.InsertAfter("Testing, testing, testing. . .");

     

    注意:使用命名参数的会存在一个风险,那就是当改变了某个方法的参数名称时,需重新使用该方法的参数名称,重新编译程序

  • 相关阅读:
    P1067 多项式输出(模拟水题)
    A. The Fair Nut and Elevator(暴力)
    A. The Fair Nut and Elevator(暴力)
    Knight Tournament (set)
    jquery怎么添加多个类名
    jquery对类的操作,添加,删除,点击添加,再点击删除
    jquery操作css样式的方法
    jquery浅复制和深复制区别
    TS 三种函数的定义方式
    ES7及ES8新特性
  • 原文地址:https://www.cnblogs.com/haokaibo/p/2097713.html
Copyright © 2011-2022 走看看