您的位置:首页 > 编程语言 > C#

看陈广老师c#参考视频总结(第二篇)

2008-07-23 22:52 471 查看
日期:[/b]2008-6-7
学习内容:[/b]数组,类型转换,using语句的其他用法
[align=left]遗留问题:[/b]类型转换需要进一步的弄清楚[/align]
[align=left]学习总结:[/b][/b][/align]
1. 数组:
长度固定的数组的使用方法:
[align=left]using System;[/align]
[align=left]public class Arrary[/align]
[align=left]{[/align]
[align=left] [/align]
[align=left] public static void Main(string[] args)[/align]
[align=left] {[/align]
[align=left] int[] arr=new int[]{1,2,3,4,5};//声明数组的同时对数组进行初始化[/align]
[align=left] int[] arr1 ={ 1, 2, 3, 4, 5 };//声明数组并初始化的简写方法[/align]
[align=left] int[] arr2 = new int[5];[/align]
[align=left] for (int i = 0; i < arr2.Length; i++)[/align]
[align=left] {[/align]
[align=left] Console.WriteLine("arr2[{0}]={1}", i, arr[i]); //格式化输出[/align]
[align=left] }[/align]
[align=left] foreach (int i in arr1)//通过foreach循环遍历数组[/align]
[align=left] {[/align]
[align=left] Console.WriteLine(i);[/align]
[align=left] }[/align]
[align=left] for (int i = 0; i < arr.Length; i++)//通过下标索引输出数组的值[/align]
[align=left] {[/align]
[align=left] Console.WriteLine(arr[i]);[/align]
[align=left] }[/align]
[align=left] }[/align]
}
数组的长度不固定,需要预先输入的数组的使用方法
注意:同一个域中的静态成员只能调用本域中的静态成员
[align=left]using System;[/align]
[align=left]public class Arrary[/align]
[align=left]{[/align]
[align=left] public static void PrintArr(int ArrLength) //必须将次方法指定为静态的[/align]
[align=left] {[/align]
[align=left] int[] arr=new int[ArrLength];[/align]
[align=left] for(int i=0;i<arr.Length;i++)//给数组元素赋值[/align]
[align=left] { [/align]
[align=left] arr[i]=i;[/align]
[align=left] }[/align]
[align=left] Console.WriteLine("打印出数组的值:");[/align]
[align=left] for(int i=0;i<arr.Length;i++)//打印出数组元素的值[/align]
[align=left] {[/align]
[align=left] Console.WriteLine("arr[{0}]={1}",i,arr[i]);[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] }[/align]
[align=left] public static void Main(string[] args)[/align]
[align=left] {[/align]
[align=left] int i=1;[/align]
[align=left] while(i>0)[/align]
[align=left] {[/align]
[align=left] Console.WriteLine("请输入数组的长度:");[/align]
[align=left] i=Int32.Parse(Console.ReadLine());//因为Readline()方法返回的是字符,需要转换成整型然后赋值给i[/align]
[align=left] PrintArr(i);//调用PrintArr方法[/align]
[align=left] }[/align]
[align=left] }[/align]
}
如果不想把PrintArr声明为静态方法,可以把他放在另外一个类中
注意:如果在此段代码中再把PrintArr方法加上static关键字则会报错
[align=left]using System;[/align]
[align=left]public class SetArr[/align]
[align=left]{[/align]
[align=left] public void PrintArr(int ArrLength)[/align]
[align=left] {[/align]
[align=left] int[] arr = new int[ArrLength];[/align]
[align=left] for (int i = 0; i < arr.Length; i++)//给数组元素赋值[/align]
[align=left] {[/align]
[align=left] arr[i] = i;[/align]
[align=left] }[/align]
[align=left] Console.WriteLine("打印出数组的值:");[/align]
[align=left] for (int i = 0; i < arr.Length; i++)//打印出数组元素的值[/align]
[align=left] {[/align]
[align=left] Console.WriteLine("arr[{0}]={1}", i, arr[i]);[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] }[/align]
[align=left]}[/align]
[align=left]public class Arrary[/align]
[align=left]{[/align]
[align=left] [/align]
[align=left] public static void Main(string[] args)[/align]
[align=left] {[/align]
[align=left] SetArr arr = new SetArr();[/align]
[align=left] int i=1;[/align]
[align=left] while(i>0)[/align]
[align=left] {[/align]
[align=left] Console.WriteLine("请输入数组的长度:");[/align]
[align=left] i=Int32.Parse(Console.ReadLine());//因为Readline()方法返回的是字符,需要转换成整型然后赋值给i[/align]
[align=left] arr.PrintArr(i);//调用PrintArr方法[/align]
[align=left] }[/align]
[align=left] }[/align]
}
动态数组使用时要用到ArrayList类:
注意:Array类可以定义多维数组,而ArrayList类能定义多为数组;Array类的数组长度固定,ArrayList类的长度是可以改变的;在ArrayList类中能对元素进行添加,删除,修改,排序等操作
[align=left]using System;[/align]
[align=left]using System.Collections;//ArrayList类包含在此命名空间下[/align]
[align=left]public class Arrary[/align]
[align=left]{[/align]
[align=left] public static void Main(string[] args)[/align]
[align=left] {[/align]
[align=left] ArrayList arr = new ArrayList();//声明ArrayList类的实例[/align]
[align=left] string str;[/align]
[align=left] while (true)[/align]
[align=left] {[/align]
[align=left] Console.WriteLine("请添加一个字符串到ArrayList中:");[/align]
[align=left] str=Console.ReadLine();[/align]
[align=left] if(str=="end")[/align]
[align=left] break;[/align]
[align=left] arr.Add(str);//调用Add方法将字符串添加到arr中[/align]
[align=left] Console.WriteLine();[/align]
[align=left] for(int i=0;i<arr.Count;i++)//输出arr中的元素[/align]
[align=left] {[/align]
[align=left] Console.Write(arr[i]);[/align]
[align=left] Console.Write(" ");[/align]
[align=left] }[/align]
[align=left] Console.Write("\n");[/align]
[align=left] }[/align]
[align=left] }[/align]
}
二维数组及多维数组的定义及使用
int[,] arr=new int[,]{{1,2,3},{4,5,6}}
int[,] arr={{1,2,3},{4,5,6}}
int[,] arr=new int[2][3]
数组的数组:
int[,] arr=new int[2][] 指定义了数组的行或列的维度
[align=left]using System;[/align]
[align=left]using System.Collections.Generic;[/align]
[align=left]using System.Text;[/align]
[align=left] [/align]
[align=left]namespace ConsoleApplication1[/align]
[align=left]{[/align]
[align=left] class Program[/align]
[align=left] {[/align]
[align=left] [/align]
[align=left] public static void Main(string[] args)[/align]
[align=left] {[/align]
[align=left] int[,] arr = new int[2,3];[/align]
[align=left] for (int i = 0; i < 2; i++) //给数组元素赋值[/align]
[align=left] {[/align]
[align=left] for (int j = 0; j < 3; j++)[/align]
[align=left] {[/align]
[align=left] arr[i, j] = i + j;[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] for (int i = 0; i < 2; i++)//输出数组元素[/align]
[align=left] {[/align]
[align=left] for (int j = 0; j < 3; j++)[/align]
[align=left] {[/align]
[align=left] Console.Write(arr[i, j]);[/align]
[align=left] [/align]
[align=left] }[/align]
[align=left] Console.WriteLine(); [/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]}[/align]
[align=left]2.类型转换[/align]
[align=left]类型转换可以分为:隐式转换和显示转换[/align]
[align=left]隐式转换自动执行,转换规则精度提高,容量增大:byte->short->int->long->float->double;显示转换有三种方法:第一种方法直接使用(类型名);第二种方法通过Convert类;第三种方法通过类型自身的Parse方法[/align]
[align=left]值类型之间的转换:直接在要转换的数据前面加上要转换的数据类型[/align]
[align=left]值类型和引用类型之间的转换:装箱和拆箱(尽量避免装箱和拆箱操作,否则会影响系统的性能)[/align]
[align=left]Int类型的数据的原型是:system.int32 long类型的数据的原型是:stystem.int64 [/align]
[align=left]求各种数据类型的最大值的方法:数据类型.MAXVALUE[/align]
[align=left]Checked和unchecked操作符只能作用于一条语句checked( ),当时checked和uncheck语句块能作用于多条语句checked{ }[/align]
[align=left]引用类型间的转换:CLR允许将对象强制转换为其他类型或基类型[/align]
[align=left]Is操作符返回的是bool类型的true或false[/align]
[align=left]As操作符返回的是是否和给定的类型兼容,兼容不返回空,不兼容返回空值null[/align]
[align=left]注意:as运算符必须和引用类型一起使用[/align]
[align=left]小方法:判断一个数据是何种类型的方法:[/align]
[align=left]Type t=a.GetType();[/align]
[align=left]Console.WriteLine(t.FullName);[/align]
[align=left]使用is操作符和as操作符的好处是应用程序不会引发异常[/align]
[align=left]3.Using语句的其他用法[/align]
[align=left]Using语句除了引用命名空间外,还有一中方法是为了使unmanged资源尽快释放,防止内存泄漏。当然您可以调用dispose方法,但有时会忘记。C#提供了另外一种机制,用using语句[/align]
[align=left]确保永远调用dispose方法,常用于数据库操作[/align]
[align=left]using System;[/align]
[align=left]using System.Collections.Generic;[/align]
[align=left]using System.ComponentModel;[/align]
[align=left]using System.Data;[/align]
[align=left]using System.Drawing;[/align]
[align=left]using System.Text;[/align]
[align=left]using System.Windows.Forms;[/align]
[align=left]using System.IO;[/align]
[align=left]using System.Data.SqlClient;[/align]
[align=left]namespace WindowsApplication1[/align]
[align=left]{[/align]
[align=left] public partial class Form1 : Form[/align]
[align=left] {[/align]
[align=left] string str = @"C:\Documents and Settings\Administrator\桌面\1.txt";[/align]
[align=left] public Form1()[/align]
[align=left] {[/align]
[align=left] InitializeComponent();[/align]
[align=left] }[/align]
[align=left] private void Form1_Load(object sender, EventArgs e)[/align]
[align=left] {[/align]
[align=left] [/align]
[align=left] }[/align]
[align=left] private void button1_Click(object sender, EventArgs e)[/align]
[align=left] {[/align]
[align=left] using(StreamWriter sw=new StreamWriter(str))[/align]
[align=left] {[/align]
[align=left] sw.WriteLine("北京理工大学");[/align]
[align=left] sw.WriteLine("计算机科学与技术系");[/align]
[align=left] }[/align]
[align=left] using (StreamReader sr = new StreamReader(str))[/align]
[align=left] {[/align]
[align=left] this.textBox1.Text = sr.ReadToEnd();[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] //using(SqlConnection conn=new SqlConnection())[/align]
[align=left] //{[/align]
[align=left] // 连接数据库的代码[/align]
[align=left] //}[/align]
[align=left] }[/align]
[align=left]}[/align]
[align=left]遗留问题:[/b]类型转换需要进一步的弄清楚,需要巩固的知识点[/align]本文出自 “无名鼠辈” 博客,请务必保留此出处http://xiaoshu838.blog.51cto.com/433568/89245
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: