黑马程序员-- .Net学习日记——c#面向对象-方法

 

---------------------- Windows Phone 7手机开发Net培训、期待与您交流! ----------------------

 

黑马程序员-- .Net学习日记——c#面向对象-方法

方法功能:用来复用代码的,当我们在一个程序中反复的写了同样的代码,

那么一般情况下,我们可以吧需要重复写的代码定义在一个方法中,用的时候调用就好了

定义方法的语法:

[访问修饰符(可以省略)][static可以省略]返回值类型  方法名()

{

       方法体

}

注意!1)方法要定义在类中

2)如果方法没有返回值,则返回值类型写void

3)如果方法没有参数,()不能省略

方法的调用:如果是静态方法(static修饰的)则使用  类名.方法名();

在类中调用本类的方法可以只写方法名();

Return:立即跳出方法    和if条件配合使用

变量的作用域:在方法中定义的变量称为局部变量,其作用域从定义开始到其所在的大括号结束为止。

当被调用者想得到调用者方法中的变量时,则让调用者通过参数的形式给调用者。

Int a=int.parse(要转换的一种类型转换 和convert.Toint32一样  

定义方法的语法:

[访问修饰符(可以省略)][static可以省略]返回值类型  方法名([参数]

{

       方法体

}

在方法名后面的括号内定义的变量叫做定义这个方法的参数这里定义的变量用于接收调用者传过来的数据

注意:如果一个方法一旦有参数,那么调用者就必须传参数,并且参数的个数与对应位置上的类型一致

当调用者想访问我们方法中的变量是,可以通过返回值返回

例如:

String s = console.readline()

Int i=convet.toint32("22")

为什么方法前面能够定义一个变量收到方法的值,是因为方法中使用了返回值

只要在方法中返回了值,那么在调用方能够发中,前面就应该用一个变量来接收方法的返回值

注意:一个方法只能有一个返回值

方法的命名规则:方法名开头要大些,参数名开头小写,参数名,变量名要有意义

                 方法的调用对于静态方法,如果在同一个类中,直接写名字调用就行了,

参数是为了给方法值的,返回值是为了得到方法值的

参数是方法给调用者值的,

一个变量一旦定义在方法的外面,类的里面,就叫做字段,这个变量就可以被本类的所有方法所访问,

但要注意静态方法只能访问静态字段。有const修饰的常量不能定义静态的。

方法的调用,对于静态方法,如果在同一个类中,直接写名字调用就行,return可以立即退出程序.

方法重载 一般在同一个类中,方法名相同,并且方法的参数的个数不同或者对应位置上的类型不同,才能构成方法的重载。

方法重载和返回值没有关系,方法参数的个数与类型返回值不同无法方法重载

Static void main(string [] args)

{

Int number;(int number=10;)

Int result=test(out,number)

Console.writeline(number,result);

}

Static int test (out int a )

{

   A=10;

Return 10 ;

}

方法的参数类型前加out那么传参数的时候,也必须在number前加out表明参数不是传入的而是传出

2)如果参数是以out形式传入的那么载传入前可以不赋初值

       3)在方法中对于由out修饰的参数,必须赋值,并且必须在使用前赋值

           字符串替换:string  Replace (string oldValue,string newValue)将字符串中出现oldValue的地方替换成newValue

 例子:名字的替换。

取子字符串:string Substring( int startlndex),取从位置startlndex开始一直到最后的子字符串

string Substring( int startlndexint length),取从位置startlndex开始输出,并且输出长度为length的字符串,如果子字符串的长度不足length则报错。

  string s = "http://www.baidu.com";
            string 域名 = s.Substring(7);//从指定序号开始一直到最后的子字符串
            Console.WriteLine(域名); 

bool Containsstring value)判断字符串是否含有子串value开始;

string s = "大地一片祥和";         

  if (s.Contains("大地") || s.Contains("祥和"))
            {
                Console.WriteLine("含有敏感词汇,请文明用语");
            }

bool StartsWithstring value,)判断字符串是否以子串value

bool Endswithstring value)判断字符串是否以子串value结束;

Int indexOf(string value);取字符串value第一次出现的位置

----------------------Windows Phone 7手机开发Net培训、期待与您交流! ----------------------

详细请查看:http://net.itheima.com/

 

大文件拷贝实例源码,学习关于IO文件流、多线程相关使用做参考。 private void button4_Click(object sender, EventArgs e) { this.progressBar1.Value = 0; this.label1.Text = "0%"; if (!File.Exists(this.textBox1.Text)) { MessageBox.Show("找不到目标文件!"); return; } if (!Directory.Exists(this.textBox2.Text)) { MessageBox.Show("请选择有效的保存路径!"); return; } string fileRead = this.textBox1.Text; string fileSave = Path.Combine(this.textBox2.Text, _fileName); System.Threading.ThreadPool.QueueUserWorkItem((o) => { using (IDisposable file = new FileStream(fileRead, FileMode.Open, FileAccess.Read), fileWrite = new FileStream(fileSave, FileMode.Create, FileAccess.Write)) { int count = 0; long fileLength =((FileStream)file).Length; //目标文件大小 //根据目标文件大小创建byte数组长度 byte[] data = new byte[fileLength > 1024 * 1024 * 30 ? 1024 * 1024 * 30 : fileLength]; //30M 1024 * 1024 * 30 int step = (int)Math.Ceiling(fileLength * 1.0 / data.Length); //分流段数 double n = (100 * 1.0 / step); //每次进度条累加 double m = 0; //累加统计 int spam = 1; //时间间隔 double speed = 0; //拷贝速度 do { DateTime time = DateTime.Now; //文件流操作 count = ((FileStream)file).Read(data, 0, data.Length); ((FileStream)fileWrite).Write(data, 0, count); //保存时间间隔,单位毫秒 spam = (DateTime.Now - time).Milliseconds > 0 ? (DateTime.Now - time).Milliseconds : spam;//必须大于0 //计算速度 单位k/s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值