C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了[VS2010] C# 4.0 语言新功能:Named Argument and Optional Parameters大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

[VS2010] C# 4.0 语言新功能:Named Argument and Optional Parameters


如果你是曾经用过 C# 来开发 Office 应用程序的开发人员,想必对这种程序一定很熟悉:

this.SaveAs(@"C:Book1.xml",Excel.XlFileFormat.xlXMLSpreadsheet,
??? Type.Missing,Type.Missing,Excel.XlSaveAsAccessMode.xlNoChange,
??? Type.Missing,Type.Missing
);

是因为到了 C# 3.0 为止,它都不支持选择性参数 (Optional Parameters)功能,因此在 Office 应用程序开发时,所有的选择性参数都一定要使用 Type.Missing 作为参数代表不设定,而 Office 对象模型中到处都是这种有一大堆选择性参数的函数方法,最根本的原因是对象模型本身是为了 VBA (Visual Basic for Applications) 语言来设计的,VB/VBA 都支持选择性参数,所以相同的程序在 VB 中只要这样:

@H_286_4@me.SaveAs(Filename:="C:Book1.xml",FileFormat:=Excel.XlFileFormat.xlXMLSpreadsheet,AccessMode:=Excel.XlSaveAsAccessMode.xlNoChangE)

在上面的程序中我们也看到了另一个只有 VB/VBA 才有的功能具名参数 (Named Argument),它可以在不按照参数顺序的情况下,直接以参数名称来设定参数的值,所以用 VB/VBA 开发 Office 应用程序比 C# 要简单非常非常多,对 C# 的开发人员其实也不太公平。

不过,这样不公平的情况,到了 C# 4.0 (VS 2010) 时,将会有很大的变化,因为 C# 4.0 开始支持了 Named Argument 以及 Optional Parameters 两种功能,以上面的那行程序来看,用 C# 4.0 可以写成这样:

this.SaveAs(Filename: @"C:Book1.xml",FileFormat: Excel.XlFileFormat.xlXMLSpreadsheet,AccessMode: Excel.XlSaveAsAccessMode.xlNoChange);

如何?是不是和 VB 一样简单了呢?

具名参数(Named Argument)

具名参数顾名思义,就是直接使用参数的名称来设定参数值,这个功能在 VB/VBA 中已经是司空见惯,并且被 C# 开发人员视为相当称羡的功能之一,C# 4.0 编译器以及 Visual studio 2010 编辑界面开始支持具名参数,例如下列的函数

public int MyFunction(int argA,int argB,int argc)

{

??? return ArgA * ArgB * Argc;

}

开发人员可以用下列三种方式调用

MyFunction(ArgA: 5,ArgB: 12,ArgC: 24); // return 5 * 12 * 24

MyFunction(ArgC: 5,ArgA: 12,ArgB: 24); // return 12 * 24 * 5

MyFunction(ArgB: 5,ArgC: 12,ArgA: 24); // return 24 * 5 * 12

选择性参数(Optional Parameters)

选择性参数也是 VB/VBA,以及 C/C++ 有的功能,只是 C# 一直都没有加进来,新的 C# 4.0 开始加入了选择性参数的功能,例如下列的函数

public int MyFunction(int argA,int argB = 12,int argc = 5)

{

??? return ArgA * ArgB * Argc;

}

下列调用方式会有不同的值:

MyFunction(14,22,43); // return 14 * 22 * 43

MyFunction(16); // return 16 * 12 * 5

MyFunction(ArgB: 25); // 错误,因为 ArgA 没有指定参数。

MyFunction(16,ArgC: 100); // return 16 * 12 * 100

选择性参数最直接的好处,就是不用再写一大堆的 Type.Missing,就可以轻松的调用 COM 的对象方法了。例如下列的函数

var excelApp = new Microsoft.office.Interop.Excel.Application();

var myFormat = Microsoft.office.Interop.Excel.XlRangeAutoFormat.xlRangeAutoFormatAccounTing1;

excelApp.get_Range("A1","B4").AutoFormat(myFormat,Type.Missing);

到了 C# 4.0,只要这样写就好了:

var excelApp = new Microsoft.office.Interop.Excel.Application();

var myFormat = Microsoft.office.Interop.Excel.XlRangeAutoFormat.xlRangeAutoFormatAccounTing1;

excelApp.get_Range("A1","B4").AutoFormat( Format: myFormat );

不过请务必记住一件事,Named Argument 和 Optional Parameters 然好用,但绝对不要滥用,否则会对程序可读性有相当大的伤害。

原文:大专栏  [VS2010] C# 4.0 语言新功能:Named Argument and Optional Parameters

大佬总结

以上是大佬教程为你收集整理的[VS2010] C# 4.0 语言新功能:Named Argument and Optional Parameters全部内容,希望文章能够帮你解决[VS2010] C# 4.0 语言新功能:Named Argument and Optional Parameters所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。