zoukankan      html  css  js  c++  java
  • 命名参数和可选参数在.NET中的使用

    原文发布时间为:2011-04-25 —— 来源于本人的百度文章 [由搬家工具导入]

    Named and Optional Arguments

    class NamedExample
    {
    staticvoid Main(string[] args)
    {
    // The method can be called in the normal way, by using positional arguments.
    Console.WriteLine(CalculateBMI(123, 64));

    // Named arguments can be supplied for the parameters in either order.
    Console.WriteLine(CalculateBMI(weight: 123, height: 64));
    Console.WriteLine(CalculateBMI(height: 64, weight: 123));

    // Positional arguments cannot follow named arguments.
    // The following statement causes a compiler error.
    //Console.WriteLine(CalculateBMI(weight: 123, 64));

    // Named arguments can follow positional arguments.
    Console.WriteLine(CalculateBMI(123, height: 64));
    }

    staticint CalculateBMI(int weight, int height)
    {
    return (weight * 703) / (height * height);
    }

    }

     

    ==================Optional Arguments

    namespace OptionalNamespace
    {
    class OptionalExample
    {
    staticvoid Main(string[] args)
    {
    // Instance anExample does not send an argument for the constructor's
    // optional parameter.
    ExampleClass anExample = new ExampleClass();
    anExample.ExampleMethod(1, "One", 1);
    anExample.ExampleMethod(2, "Two");
    anExample.ExampleMethod(3);

    // Instance anotherExample sends an argument for the constructor's
    // optional parameter.
    ExampleClass anotherExample = new ExampleClass("Provided name");
    anotherExample.ExampleMethod(1, "One", 1);
    anotherExample.ExampleMethod(2, "Two");
    anotherExample.ExampleMethod(3);

    // The following statements produce compiler errors.

    // An argument must be supplied for the first parameter, and it
    // must be an integer.
    //anExample.ExampleMethod("One", 1);
    //anExample.ExampleMethod();

    // You cannot leave a gap in the provided arguments.
    //anExample.ExampleMethod(3, ,4);
    //anExample.ExampleMethod(3, 4);

    // You can use a named parameter to make the previous
    // statement work.
    anExample.ExampleMethod(3, optionalint: 4);
    }
    }

    class ExampleClass
    {
    privatestring _name;

    // Because the parameter for the constructor, name, has a default
    // value assigned to it, it is optional.
    public ExampleClass(string name = "Default name")
    {
    _name = name;
    }

    // The first parameter, required, has no default value assigned
    // to it. Therefore, it is not optional. Both optionalstr and
    // optionalint have default values assigned to them. They are optional.
    publicvoid ExampleMethod(int required, string optionalstr = "default string",
    int optionalint = 10)
    {
    Console.WriteLine("{0}: {1}, {2}, and {3}.", _name, required, optionalstr,
    optionalint);
    }
    }

    // The output from this example is the following:
    // Default name: 1, One, and 1.
    // Default name: 2, Two, and 10.
    // Default name: 3, default string, and 10.
    // Provided name: 1, One, and 1.
    // Provided name: 2, Two, and 10.
    // Provided name: 3, default string, and 10.
    // Default name: 3, default string, and 4.

    }

  • 相关阅读:
    OGG常用命令
    postgres psql常用命令学习笔记
    oracle DG搭建方式两种总结
    配置rhel系统kdump安装RHEL的debuginfo软件包
    oracle开机自启,监听自启,任意秒crontab
    cx_Oracle.DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded 解决方法
    rhel | centos7上配置python3环境和pip
    shared_pool知识点整理
    记一次性能测试实践3-单接口压测
    我是如何做性能测试-文档收集并深入学习
  • 原文地址:https://www.cnblogs.com/handboy/p/7164000.html
Copyright © 2011-2022 走看看