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. 可见性的修饰符 修饰符 应用于 ...
随机推荐
- java重写equals方法
@Override public int hashCode() { return task.getId(); } @Override public boolean equals(Object obj) ...
- EF 知识点
EntityFrameWorak知识点记录 发展史 EF1.0时,只支持Database First,数据库优先.必须将设计器指向一个现有的数据库. EF4时,支持Model First,模型优先.可 ...
- Git分支学习简记
简介 开始过了两遍Git的内容,第二天就已经忘记了分支(branch)的概念,开始还觉得不太用的到.然后又看了第二遍,才发现为什么大家说这个是Git里边极其重要的一个东西. 所谓branch,就类似于 ...
- CentOS 下安装
2016年12月5日15:25:58 ----------------------------------- 通常情况下在centos下安装软件就用yum. 关键是,使用yum你要知道安装包的名字是什 ...
- Character literal must contain exactly one character -- 一天一点小知识
编程语言高度抽象化以后,错误也越来越让人难以理解了, NET编程最常见的一个错误, Object not set to the reference ,过了好久,才明白过来, 就是不明白为啥微软不说 ...
- UI学习之常用方法(续)
UIView 1. UIView *vv = [[UIView alloc]initWithFrame:CGRectMake(100,100, 100, 30)]; [vv.layer setB ...
- MySQL------MySQL与SQLServer数据类型的转换
MySQL SQLServer
- Java数据库——PreparedStatement接口
PreparedStatement接口是Statement的子接口,属于预处理操作,与直接使用Statement不同的是,PreparedStatement在操作时,是先在数据表中准备好了一条SQL语 ...
- Wget命令下载、备份博客
-np http://www.cnblogs.com/memory4young/p/ 参考资料: http://www.cnblogs.com/memory4young/p/wget-backup-b ...
- Java TCP编程
Java编写TCP编程--回射信息实例 注:简单的tcp联系,还存在问题,readUTF()为阻塞型,如果之前的用户一直不输入,则一直阻塞,之后的用户再连接会出现问题. import java.io. ...