C#可选参数的相关使用

代码如下:

static string GetStr(string s = "a", int i = 10, string r = "rrrr")
        {
            return s + i + r;
        }

调用时,可以用如下几种方法调用


代码如下:

GetStr();
            GetStr("abcde");
            GetStr("abcde", 100);
            GetStr("abcde", 100, "hjklmn");

并且,参数的顺序是不能改变的,不能跳过一个参数使用后面的参数类型,所以这样就会有个问题,如果我想调用这个方法只想用第一个和第三个参数,怎么办呢。

其实在可选参数的调用上,微软推出了命名参数,即

GetStr(s: "abcde", r: "hijklmn");只需要将参数名称标记下来就可以了。(命名参数只能是原方法的参数名 后跟冒号“:”)

这样以后的重载就可以省很多事了。省去了大段的代码重载方法

(0)

相关推荐

  • C#可选参数的相关使用

    复制代码 代码如下: static string GetStr(string s = "a", int i = 10, string r = "rrrr")        {            return s + i + r;        } 调用时,可以用如下几种方法调用 复制代码 代码如下: GetStr();            GetStr("abcde");            GetStr("abcde"

  • PHP函数按引用传递参数及函数可选参数用法示例

    本文实例讲述了PHP函数按引用传递参数及函数可选参数用法.分享给大家供大家参考,具体如下: 一.函数按引用传递参数 1. 代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999

  • Python如何定义有可选参数的元类

    问题 你想定义一个元类,允许类定义时提供可选参数,这样可以控制或配置类型的创建过程. 解决方案 在定义类的时候,Python允许我们使用 ``metaclass``关键字参数来指定特定的元类. 例如使用抽象基类: from abc import ABCMeta, abstractmethod class IStream(metaclass=ABCMeta): @abstractmethod def read(self, maxsize=None): pass @abstractmethod de

  • 教你利用Golang可选参数实现可选模式

    目录 从需求开始 定义构造函数 定义可选函数 增强构造函数 可选模式的优势 直观清晰 支持扩展 参数顺序 本文讨论Golang函数可选参数及函数类型,以及如何利用可选函数类型实现可选模式.同时通过构造函数作为示例,实现强大带可选参数的构造函数,让代码更直观.灵活.支持扩展. 从需求开始 可选参数给函数传递额外参数扩展或修改其行为,下面示例利用可选功能创建House类型: h := NewHouse( WithConcrete(), WithoutFireplace(), ) NewHouse是构

  • jQuery form插件之ajaxForm()和ajaxSubmit()的可选参数项对象

    Form Plugin API 里提供了很多有用的方法可以让你轻松的处理表单里的数据和表单的提交过程. 测试环境:部署到Tomcat中的web项目. 本文演示的是:jQuery form插件之ajaxForm()和ajaxSubmit()的可选参数项对象 ajaxForm()和ajaxSubmit()的可选参数项对象 ajaxForm 和 ajaxSubmit 都支持大量的可选参数,它们通过可选参数项对象传入.可选参数项对象只是一个简单的 JavaScript对象,里边包含了一些属性和一些值:

  • 深入C# 4.0 新特性dynamic、可选参数、命名参数的详细介绍

    1.dynamic ExpandoObject熟悉js的朋友都知道js可以这么写 : 复制代码 代码如下: var t = new Object(); t.Abc = 'something'; t.Value = 243; 现在这个js动态语言的特性,我们也可以在c#中使用了,前提是将一个变量声明为ExpandoObject类型.如下例: 复制代码 代码如下: static void Main(string[] args) { dynamic t = new ExpandoObject(); t

  • SpringMVC 参数绑定相关知识总结

    请求进入DispatcherServlet的doDispatch后,获取HandlerMethod.然后根据HandlerMethod来确认HandlerApapter,确认后执行HandlerAdapter的handle方法.这里确认HandlerApater为RequestMappingHandlerAdapter,在执行handlerMethod之前,需要处理参数的绑定. 1. 简单参数绑定 执行HandlerAdapter的handler方法后,进入RequestMappingHandl

  • C#中命名参数和可选参数

    一.简介 设计方法的参数是,可以将部分参数和全部参数分配默认值,然后调用这些方法的时候可以选择不提供部分实参,使用参数定义的默认值,另外,还可以在调用方法的时候通过指定参数名称来传递实参. 二.代码案例 class Program { private static int s = 0; private static int s_n = 0; private static void Mothed(int x = 9, string s = "A", DateTime dt = defau

  • JavaScript调用传递变量参数的相关问题及解决办法

    举例 有一个js方法,接收参数: 复制代码 代码如下: function f1(myValue){ alert(myValue); } 有一个变量: 复制代码 代码如下: var passValue="Hello World"; 在调用这个方法的时候(我是出现在Ajax提交的时候): @Ajax.ActionLink("文本","控制器",new{参数},new AjaxOptions(){ HttpMethod="post"

  • c# 可选参数、命名参数

    重新指定分配默认值的参数时,可以显式地为指定参数名称赋值,隐式指定的时候,是根据方法参数的顺序,靠c#编译器的推断. 代码示例: 复制代码 代码如下: void M(int x=9,string s="a",DateTime dt = default(DateTime)) {...} Main() { M();//使用默认值 M(8,"b")://隐式指定方法参数,没有指定的使用默认值 M(6,"v",DateTime.Now);//同上 M(6

随机推荐