C#新功能--命名参数与可选参数

简介:   可能是篇幅太短了,又被打入冷宫了.先重发一篇加上可选参数.本来不想加这个呢,因为可选参数可能大家用的会多点.其实这 两个在VB中早就有了,C#中,在.net4发布之前是不能使用的.看到这个比较兴奋,我想大家也有好多人不知道,所以就强烈的想与大家 分享一下.

  可能是篇幅太短了,又被打入冷宫了.先重发一篇加上可选参数.本来不想加这个呢,因为可选参数可能大家用的会多点.其实这

两个在VB中早就有了,C#中,在.net4发布之前是不能使用的.看到这个比较兴奋,我想大家也有好多人不知道,所以就强烈的想与大家

分享一下.

一、命名参数  

   命名参数会潜在的改变编写代码的方式.这个新功能能使代码更容易阅读和理解.

例如,看一下System.IO名称空间中的File.Copy()方法,它一般构建为

File.Copy(@"C:\mytestFile.txt",@"C:\myOtherFile.txt",true);

      在这行代码中,这个简单的方法使用3个参数,但实际传递给Copy()方法的是什么内容?除非

知道这个方法的前前后后,否则 仅看一眼该方法,很难判断出该方法会执行何种操作.而通过命名

参数,就可以在提供参数值之前使用代码中的参数名,如下所示:

File.Copy(sourceFileName: @"C:\mytestFile.txt",
                destFileName:  @"C:\myOtherFile.txt",
                overwrite:true);

    现在通过命名参数,就很容易阅读和理解这行代码将执行的操作.使用命名参数对最终的编译

没有影响,命名参数仅用在应用程序的编码中.

二、可选参数

  可选参数允许为方法的一些参数提供默认值,并允许使用者重载类型,因此,即使只有一个方法,也能处理所有变体

public void test(string a, string b, int c, bool d=true,bool e=false)
        {
        }

  调用:

public void invoke()
        {
            test("li", "dd",7);
            test("li", "dd", 7,false);
            test("li", "dd", 7, true,false);
        }

  这里也可以用到上述的命名参数:

   test("li", "dd", 7, e:true);

  这样d参数依然可以使用默认值,如果没有命名参数,想给e赋值,必须还要给d赋值.在使用可选参数的过程中,由于命名参数的出现,更提供了许多方便.

 

目录
相关文章
|
3月前
|
存储 编解码 开发工具
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用UserSet功能保存和载入相机的各类参数(C#)
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用UserSet功能保存和载入相机的各类参数(C#)
37 0
|
1月前
|
开发框架 小程序 .NET
C#动态生成带参数的小程序二维码
C#动态生成带参数的小程序二维码
|
3月前
|
存储 C#
C# 方法详解:定义、调用、参数、默认值、返回值、命名参数、方法重载全解析
方法是一段代码,只有在调用时才会运行。 您可以将数据(称为参数)传递给方法。 方法用于执行某些操作,也被称为函数。 为什么使用方法?为了重用代码:定义一次代码,然后多次使用。
43 0
|
4月前
|
C# 数据安全/隐私保护
C# 窗体之间参数互相传递的两种方法与使用
C# 窗体之间参数互相传递的两种方法与使用
|
6月前
|
C#
命令调用C#程序, 路径参数解析错误
命令调用C#程序, 路径参数解析错误
|
8月前
|
存储 API C#
Baumer工业相机堡盟工业相机如何通过文件保存和导入的方式保存和载入相机的各类参数(C#)
Baumer工业相机堡盟工业相机如何通过文件保存和导入的方式保存和载入相机的各类参数(C#)
55 0
|
8月前
|
存储 编解码 开发工具
Baumer工业相机堡盟工业相机如何通过BGAPI SDK使用UserSet功能保存和载入相机的各类参数(C#)
Baumer工业相机堡盟工业相机如何通过BGAPI SDK使用UserSet功能保存和载入相机的各类参数(C#)
48 0
|
10月前
|
数据挖掘 编译器 C#
【C#本质论 五】方法和参数
【C#本质论 五】方法和参数
48 0
|
数据处理 C#
基于C#的ArcEngine二次开发39:GP工具的使用--界面、参数及示例代码
基于C#的ArcEngine二次开发39:GP工具的使用--界面、参数及示例代码
基于C#的ArcEngine二次开发39:GP工具的使用--界面、参数及示例代码
|
C#
C# 调用外部exe,且带参数
C# 调用外部exe,且带参数
712 0