C# 4.0 新特性之参数
1.缺省参数:
{
int temp = x;
x = y;
y = temp;
}
当调用它的时候,我们可以显示的传递给它两个参数:
int j = 4;
ChangeValue(i,j);
ChangeValue(i);
{
int temp = x;
x = y;
y = temp;
Console.WriteLine("x = {0}, y = {1},z={2}", x,y,z);
}
static void ChangeValue( int x, int y=(c++)) //编译器会提示Y的默认值必须为编译时常量的错误
{
int temp = x;
x = y;
y = temp;
Console.WriteLine("x = {0}, y = {1}", x,y);
}
2.命名参数:
{
int temp = x;
x = y;
y = temp;
Console.WriteLine("x = {0}, y = {1}", x,y);
}
static void Main(string[] args)
{
ChangeValue(y:4,x:6);
Console.Read();
}
结果为:
x=4,y=6
3.可选参数:
{
int temp = x;
x = y;
y = temp;
Console.WriteLine("x = {0}, y = {1},z={2}", x, y, z);
}
static void Main(string[] args)
{
ChangeValue(1);
Console.Read();
}
结果为:x=2,y=1,z=3
x=4,y=1,z=3
{
int temp = x;
x = y;
y = temp;
Console.WriteLine("我先执行了吗? x = {0}, y = {1}", x, y);
}
static void ChangeValue(int x=4, int y = 2, int z = 3)
{
int temp = x;
x = y;
y = temp;
Console.WriteLine("x = {0}, y = {1},z={2}", x, y, z);
}
static void Main(string[] args)
{
ChangeValue();
ChangeValue(1);
ChangeValue(1,2);
Console.Read();
}
结果:x=2,y=4,z=3
x=2,y=1,z=3
我先执行了吗?x=2,y=1
实验证明,当我重载了一个和原可选参数相同命名的方法时,若执行参数相同,会优先执行没有可选参数的方法。
C# 4.0 新特性之参数相关推荐
- JDK5.0新特性--可变参数
2019独角兽企业重金招聘Python工程师标准>>> /*** 可变参数*/ public class VariableParamater {/*** 统计2个或多个数的和*/pu ...
- C#4.0新特性:可选参数,命名参数,Dynamic
1.可选参数 可以为方法的参数设置一个默认值,如下: class Program { static void Main(string[] args) { Show(); Show("cary ...
- 精进不休 .NET 4.0 (4) - C# 4.0 新特性之命名参数和可选参数
[索引页] [源码下载] 精进不休 .NET 4.0 (4) - C# 4.0 新特性之命名参数和可选参数, 动态绑定(dynamic), 泛型协变和逆变, CountdownEvent, Barri ...
- JDK5.0新特性系列---目录
JDK5.0新特性系列---目录 JDK5.0新特性系列---1.自动装箱和拆箱 JDK5.0新特性系列---2.新的for循环 JDK5.0新特性系列---3.枚举类型 JDK5.0新特性系列--- ...
- Servlet 3.0 新特性概述
Servlet 3.0 新特性概述 Servlet 3.0 作为 Java EE 6 规范体系中一员,随着 Java EE 6 规范一起发布.该版本在前一版本(Servlet 2.5)的基础上提供了若 ...
- C#6.0,C#7.0新特性
C#6.0,C#7.0新特性 C#6.0新特性 Auto-Property enhancements(自动属性增强) Read-only auto-properties (真正的只读属性) Auto- ...
- 【收藏】C# 2.03.0新特性总结
c#2.0新特性 范型 我们知道通用的数据结构可以采用object存储任何数据类型.使用object问题是: 显示的强制转带来的代码复杂性 换装箱拆箱的性能损失(为什么有性能损失?因为涉及动态内存分配 ...
- 返璞归真 asp.net mvc (10) - asp.net mvc 4.0 新特性之 Web API
返璞归真 asp.net mvc (10) - asp.net mvc 4.0 新特性之 Web API 原文:返璞归真 asp.net mvc (10) - asp.net mvc 4.0 新特性之 ...
- MySQL 8.0新特性--CTE Recurive(二)
上一篇介绍了CTE的基本用法,参考MySQL 8.0新特性--CTE(一),本篇再来介绍一下CTE Recurive递归. 1.什么是CTE Recurive? A recursive common ...
最新文章
- 数据蒋堂 | 大数据计算语法的SQL化
- Linux 进程间通信
- 物联网正在给批发业带来新的商业模式
- 深度学习之线性回归模型
- 并行和并发有什么区别?
- Java NIO Channel
- CSS具有最高优先级 !important
- 2017.4.20 火星人 思考记录
- 2019死磕java面试题_死磕 java同步系列之开篇
- lp地址为什么位_为什么内存空间分配总是以64K为边界?
- SLAM_汇总 | 视觉/激光/多传感器融合SLAM重点知识点
- 移动应用开发之相关需求文档详细说明
- Qt 字符编码转换(UTF-8 转换为 GBK)
- pip 卸载包失败的文件夹处理
- 适合小型团队的在线文档管理系统【minDoc】
- 浅谈逻辑漏洞:越权漏洞、密码找回漏洞、支付逻辑漏洞、指定账户恶意攻击、登录体系安全、业务一致性安全、业务数据篡改、验证码突破、数据重放安全
- 科学计算机计算等比求和公式,等比数列求和公式
- Linux命令之ss命令
- mysql临时表删除_MySQL如何创建和删除临时表
- android 指纹存储密码,安卓指纹认证(Android Fingerprint Auth)