C#深入浅出 修饰符(二)
public static int GetMax(params int[]args)
{
if(params==null)throw new exception("请传几个值!");
int max=args[]
foreach(int i in args)
{
if(max<args[i])
max=args[i]
}
return max;
}
static void main(string []args)
{
int i=GetMax(,,,............);//参数也可以是数组
Console.WriteLine("最大值为:"+i);
}
- 由于ref和out同属按引用传递,所以不能通过ref和out的不同的实现重载。即不能定义两个完全一样的方法,仅有参数是ref和out的不同。
- 不适用ref或者out修饰的参数,不一定就是值传递。如数组、集合都是引用类型,故不必使用ref修饰,也是按引用传递的。
public static void swap(int m,int n)//参数无ref修饰
{
int i=m;
m=n;
n=i;
}
static void main(string []args)
{
int m=;
int n=;
swap(m,n);
console.WriteLine("m="+m.Tostring,"n="+n.Tostring);//m=2,n=3此时只是将m.n的值复制一份传递给swap方法,交换的是他们的副本;
}
public static void swap(ref int m,ref int n)//参数ref修饰
{
int i=m;
m=n;
n=i;
}
static void main(string []args)
{
int i=;
int j=;//必须要赋值,这样它才会在内存中有地址;
swap(ref i,ref j);
console.WriteLine("i="+i.Tostring,"j="+j.Tostring);//i=3,j=2此时只是将i.j的地址传递给swap方法,交换的是他们的地址,所有数值做相应的改变;
}
public bool Login(string Account,string Pwd,out Msg)
{
bool flag=true;
if(Account=="admin")
{
if(Pwd=="pwd")
{
Msg="登陆成功";
}
else
{
Msg="密码错误";
flag=flase;
}
}
else
{
Msg="账号错误";
flag=false;
}
return flag;
}
static void main(string []args)
{
string Msg;//获取返回来的信息内容,不需要赋值;
bool flag=Login(admin,pwd,out Msg);
}
- out修饰的参数,不要求传递前赋初值(其实赋了也没有用),凡是用out修饰的参数,在方法内部都认为没有赋初值。
- out修饰的参数,需要强制在方法内部给它赋值以便将该值带到外面,而ref修饰的参数则无此限制。
- out修饰的参数,其典型的应用如用于返回多个值,例如方法int.TryParse(参数1,out参数2),参数2即为out修饰,用于将转换的结果带到方法外面。整个方法的返回值为bool,表明是否转换成功,该函数可以用于判断用户输入的是否为整型数值。
2.static修饰符
3.访问修饰符
可参考:https://msdn.microsoft.com/zh-cn/library/6tcf2h8w.aspx
http://www.cnblogs.com/Athrun/archive/2007/11/16/961137.html
C#深入浅出 修饰符(二)的更多相关文章
- 深入浅出OOP(五): C#访问修饰符(Public/Private/Protected/Internal/Sealed/Constants)
访问修饰符(或者叫访问控制符)是面向对象语言的特性之一,用于对类.类成员函数.类成员变量进行访问控制.同时,访问控制符也是语法保留关键字,用于封装组件. Public, Private, Protec ...
- 从零开始学 Web 之 Vue.js(二)过滤器,按键修饰符,自定义指令
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...
- [原创] 基础中的基础(二):C/C++ 中 const 修饰符用法总结
在这篇文章中,我总结了一些C/C++语言中的 const 修饰符的常见用法,供大家参考. const 的用法,也是技术性面试中常见的基础问题,希望能够帮大家梳理一下知识,给大家一点点帮助.作者是菜鸟一 ...
- 乐字节Java反射之二:实例化对象、接口与父类、修饰符和属性
大家好,小乐继续接着上集:乐字节Java反射之一:反射概念与获取反射源头Class 这次是之二:实例化对象.接口与父类.修饰符和属性 一:实例化对象 之前我们讲解过创建对象的方式,有new .克隆.反 ...
- MySQL 聚合函数(二)Group By的修饰符——ROLLUP
原文为MySQL 5.7 官方手册:12.20.2 GROUP BY Modifiers 一.ROLLUP 修饰符的意义 GROUP BY子句允许添加WITH ROLLUP修饰符,该修饰符可以对分组后 ...
- [002] - JavaSE面试题(二):基本数据类型与访问修饰符
第一期:Java面试 - 100题,梳理各大网站优秀面试题.大家可以跟着我一起来刷刷Java理论知识 [002] - JavaSE面试题(二):基本数据类型与访问修饰符 第1问:Java的数据类型有哪 ...
- Java基础知识回顾之二 ----- 修饰符和String
前言 在上一篇中,回顾了Java的基本数据类型 ,这篇就来回顾下Java中的一些修饰符以及String. 修饰符介绍 Java修饰符主要分为两类: 访问修饰符 非访问修饰符 其中访问修饰符主要包括 p ...
- python学习day20 面向对象(二)类成员&成员修饰符
1.成员 类成员 类变量 绑定方法 类方法 静态方法 属性 实例成员(对象) 实例变量 1.1实例变量 类实例化后的对象内部的变量 1.2类变量 类中的变量,写在类的下一级和方法同一级. 访问方法: ...
- C#编程(二十四)----------修饰符
修饰符 修饰符即应用于类型或成员的关键字.修饰符可以指定方法的可见性,如public或private,还可以指定一项的本质,如刚发的vritual或abstract. 可见性的修饰符 修饰符 应用于 ...
随机推荐
- list去除并且把值相加
package list; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import ja ...
- 关于Unity3d粒子系统的小发现(天堂3技能释放)
导入系统给的粒子包,发现了一个问题:系统的粒子都有移动轨迹. 而自己新建的空粒子系统却没有这个功能.顺便也复习一下粒子系统. Particle System (粒子系统): Duration(持续时间 ...
- Build to win!——获得小黄衫的感想
UPDATE: 应栋哥要求,上传了无遮挡的正面照(我的内心其实是拒绝的!(ㄒoㄒ)) 一.前言&背景 从大一上C++课程开始,栋哥就开始安利他大三的软工实践课. 时间过得飞快,大学转眼就过去一 ...
- SaltStack项目实战(七)
上文 http://www.cnblogs.com/shhnwangjian/p/6027992.html 四.memcached 1)创建www用户 mkdir -p /srv/salt/prod/ ...
- 签名有元程序集 Signed Friend Assemblies
下面的例子演示了创建签名程序集和有元程序集.这就要求两个程序集都是强命名,在下面的例子中,两个程序集都用了同一个秘钥,也可以用不同的秘钥. 1. 生成秘钥, 这个在前面的博客中有说明,生成秘钥文件sn ...
- sql 行转 列, 列转行
行列互转 复制代码 create table test(id ),quarter int,profile int) insert into test values(,,) insert into te ...
- python学习笔记-(八)装饰器、生成器&迭代器
本节课程内容概览: 1.装饰器 2.列表生成式&迭代器&生成器 3.json&pickle数据序列化 1. 装饰器 1.1 定义: 本质上是个函数,功能是装饰其他函数—就是为其 ...
- putty配色方案
最近用腻了putty默认的配色方案,所以打算换一下配色. 使用的是修改注册表的方法. 1.打开注册表:运行——>regedit 2.找到对应的注册表文件,并导出:注册表地址 HKEY_CURRE ...
- codeforces 712C C. Memory and De-Evolution(贪心)
题目链接:http://codeforces.com/problemset/problem/712/C 题目大意: 给连个值x,y (3 ≤ y < x ≤ 100 000), x,y都为等边三 ...
- C++ 内存管理与堆栈
/*内存管理与堆栈: * # 一个由C/C++编译的程序占用的内存分为以下几个部分 * 1.栈区:由编译器自动分配释放,数据先进后出 * 2.堆区:由程序员手动分配释放,数据先进先出, * new 和 ...