• 命名参数和可选参数在.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.

    }

  • 相关阅读:
    python3-while与if
    python3-while与continue
    python3-password在输入密码时隐藏密码
    input与字符串格式化
    for与break的用法
    bochs 2.6.8 常用命令集合
    关于8086中的jmp near ptr原理
    如何学习Python课程
    微信公众号去除密码安全提示
    模块的使用
  • 原文地址:https://www.cnblogs.com/handboy/p/7164000.html
Copyright © 2020-2023  润新知