C#下学习资料整理:
第一章 WinForm应用程序概述
程序都需要一个入口点--Main方法,在 WinForm程序中、程序的入口类是Program.cs。再创在窗口项目时、自动生成。
窗体的重要属性:
StartPosition : 窗体第一次出现时的位置
Name: 窗体对象的名字,类似于变量的名字
BackColor: 窗体的背景
TopMost : 设置窗体是否为最顶端的窗体
ShowInTaskBar : 设置窗体是否出现在任务栏
Text : 窗体标题栏显示的文字
WindowState : 窗体出现时最初的状态(正常、最大化、最小化)
重要事件
a、Load 窗体加载事件,窗体加载时发生
b、MouseClick 鼠标单击事件,当用户单击窗体时发生
c、MouseDoubleClick 鼠标双击事件,当用户双击窗体时发生
d、MouseMove 鼠标移动事件,当鼠标移过窗体时发生
e、KeyDowe 键盘按下事件,在首次按下某个键时发生
f、KeyUp 键盘释放事件,在释放键时发生
第二章 字符串处理
字符串的定义:字符串是一种特殊的数据类型,是由多个字符(char)组成的。在C#中通过string进行定义,定义方法如下:
string 变量名称 = 具体指;
如
string str = "sun";
字符串的定位:字符串的定位操作实际意思是在母字符串中查字串,并返回字串的第一次出现的位置。
方法名称为:IndexOf(从左到右) LastIndexOf(从右到左)
访问字符串的字符
如:
String str=”sun”;
Char[] chararr=str.ToCharArray();
For(i=0;i<chararr.length;i++)
{
Console.WriteLine("第一个字符:{0}",chararr[i]);
}
字符串的链接
字符串的链接 Join
字符串的比较 CompareTo
字符串的拆分 Split
字符串的定位 IndexOf/lastIndexOf
字符串的截取 Substring
如:
String str="孙";
Str=str+"月";
Console.WriteLine(str);
用 String.Concat 方法会省资源
String str="孙";
Str=String.Concat(str."月");
Console.WriteLine(str);
Str=String.Concat(str,"1005D");
Console.WriteLine(str);
字符串的大小写转换
用途:注册时的用户名称。注册时的用户密码. 验证密码判断等。
ToUpper(转为大写) ToLower(转为小写)
String str1=”abcdc”;
Console.WriteLine(“转为大写{0}”,str1. ToUpper());
Console.WriteLine(“转为小写{0}”,str1. ToLower());
第三章 枚举 结构体 装箱和拆箱
struct 用来定义结构体
修饰符 struct 自定义类型名称
{
//字段,属性,方法 和 事件...
}
在结构体中,除非字段被声明为const(常数)或static(静态的),否则无法初始化。
应用结构类型应具备以下4个条件:
1.它在逻辑上表示单个值,与基本类型(整形,字符串)类似;
2.它的实例大小小于16个字符;
3.它是不可变的;
4.它在整个程序的逻辑中不需要被频繁的拆,装箱。
枚举类型是值类型,是用于声明一组命名的常数。方法如下:
修饰符 enmu 枚举类型名称:基础类型
{
枚举成员=常数,
....
}
基础类型必须能够表示该枚举中定义的所有枚举数值。
可显示地声明byte,sbyte,short,ushort,int,uint,long,ulong类型作为对应基础类型。
没有显示地声明基础类型的枚举声明意味着对应的基础类型是int型。
enum常用的三个方法:
GetValues() 检索制定枚举中常数值的数组。
GetNames() 在制定枚举中检索具有指定值的常数的名称。
Parse() 讲一个或多个枚举常数的名称或数字值的字符串表示转换成等效的枚举对象。
Object
任何值类型,引用类型可以和Object(对象)类型之间进行转换。
装箱转换是将一个值类型隐式或显式地转换成一个object类型,或者把这个值类型转换成一个被该值类型应用的接口类型(interface-type)。
装箱就是创建一个object实例并将这个值复制给这个object,装箱后的object对象中的数据位于堆中,堆中地址在栈中。被装箱的值是作为一个
拷贝赋给对象的。
如
“装箱”
int i = 123;
object o = (object)i;
“拆箱”
o = 123;
i =(int)o;
第四章 集合
Hashtable(注释:集合)是System.Collections(注释:收集)命名空间提供的一个容器,用于处理和表现类似Key的键值对.
定义一上哈希表的对象
Hashtable hashTable = new Hashtable();
添加元素
Student.Add(stu1.Name, stu1);
获取元素
Student s2 = (Student)hashTable["李俊基"];
Console.WriteLine(s2.Name);
Console.WriteLine(s2.Age);
Console.WriteLine(s2.Sex);
ArrayList:的名称空间是System.Collections
Capacity:表示数组可包含的元素数(可读可写)
Count:表示实际包含的元素(只读)
Student.add();增加数组的元素
Remove(删除指定对象名)
RemoveAt(删除指定索引)
Clear(清除集合里所有的元素)
for(用在循环里)
foreach(用在循环里)
定义一上ArrayList的对象
ArrayList arrayList = new ArrayList();
遍历元素
foreach (object o in arrayList)
{
Student s = (Student)o;
Console.WriteLine(s.Name);
}
添加元素
arrayList.Add(stu);
arrayList.Add(t);
元素的删除
ArrayList.Remove(对象名) //删除指定对象名的对象
ArrayList.RemoveAt(index) //删除指定索引的对象
ArrayList.Clear() //清除集合内的所有元素
获取元素
Student stu1 = (Student)students[0];
stu1.SayHi();
第五章 泛型
Dictionary 泛型
static 静态
FileStream 创建文件流
FileMode 指定如何打开文件
Open: 指定打开现有文件
Create 创建一个新文件
CreateNew 新建一个文件
FileAccess 创建读写器
StreamWriter 文本文件写入器
StreamReader 文本文件读取器
ReadToEnd 读取到文件末尾
泛型的重要性
泛型集合与传统集合相比类型更安全
泛型集合无需装箱拆箱操作
泛型的重要性
泛型是未来五年的主流技术之一
解决了很多需要繁琐操作的问题
提供了更好的类型安全性
CLR 支持泛型
泛型集合就是只需一行代码便能创建指定类型的集合,泛型是 Frabework 2.0后出现的,使用泛型类型可以最大限度地重用代码、保护类型的安全以及提高性能,List<T>中的T表示T表示Type.
List<T>与ArrayList的相同点和不同点
List ArrayList
不同点 增加元素时类型严格检查、无需装箱拆箱 可以增加任何类型、需要装箱拆箱
相同点 通过索引访问集合的元素,添加对象方法相同,通过索引删除元素
Dictionary<K,V> 与 哈希表 的相同点和不同点
Dictionary<K,V> 哈希表
不同点 增加元素时类型严格检查、无需装箱拆箱 可以增加任何类型、需要装箱拆箱
相同点 通过Key获取Value、添加对象方法相同、遍历方法相同
第六章 静态成员与静态类
writeline输出数值变量类可以声明为static,它指示它仅包含静态成员。不能使用new关键字创建静态类的实例。
静态类成员可用于分离独立于任何对象标识的数据和行为:无论对象发什么更改,这些数据和函数都不会随之变化。
当类中没有依赖对象标识的数据或行为时,就可以使用静态类。
静态方法和实例方法
静态方法 实例方法
static 关键字 不需要static关键字 使用类名调用 使用实例对象调用 可以访问静态成员 可以直接访问静态成员 不可以直接访问实例成员 可以直接访问实例成员
不能直接调用实例方法 可以直接访问实例方法、静态方法
调用前初始化 实例化对象时初始化
静态类的定义
Public static class 类名
{ }
第七章
异常处理
异常指的是在运行时发生的错误
,异常处理就是预知可能发生的异常,在程序中编码处理。
结构化异常处理,一般要使用三部分代码
try
{
//可能会抛出异常的代码内容
...............
}
catch(Exception e)
{
//接受异常、处理异常
...............
}
finally
{
//无论是否有异常、均执行的代码内容
...............
}
第八章 委托与事件
委托:委托(Delegate)是一个类,等效于函数指针。它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。使用委托可以将多个方法绑定到同一个委托变量,当调用此变量时(调用这个词,在这里代表的是因为此变量代表一个方法),可以依次调用所有绑定的方法。 事件:声明一个事件类似于声明一个进行了封装的委托类型的变量
第九章 IO文件处理
需要引入命名空间为:using System.IO;
读写一个文件的步骤
1、创建一个文件流
2、创建一个相应的读写器(StreamReader、StreamWriter)
3、执行读写操作
4、关闭读写器
5、关闭文件流
读写文件
FileStream:
1)FileMode:文件打开的方式,返回枚举类型
1>Append:打开现有文件并查到文件尾,或创建新文件
2>Create:指定操作系统创建新文件。如果文件已存在,它将被覆盖
3>Open: 指定操作系统应打开现有文件
4>OpenOrCreate:指定操作系统应打开文件(如果文件存在)。否则,创建新文件
5>CreateNew: 指定操作系统应创建新文件。如果文件已存在,出现IOException异常
6>Truncate: 指定操作系统应打开现有文件。如果一旦打开,就将被截断为零字节大小
2)FileAccess:
1>Read: 对文件的读访问,可读取文件中的数据
2>Writer: 对文件的写访问,可将数据写入文件
3>ReadWriter:对文件的读访问和写访问,可读取文件中的数据和将数据写入文件
StreamReader:文本文件读入器,允许直接将字符串写入文件
StreamWriter:文本文件写入器,允许直接读取文件内容
Close: 关闭当前流
4.ReadToEnd与ReadLine的区别
ReadToEnd:从流的当前位置到流的末尾读取流,而ReadLine:从当前流中读取一行字符串并将数据作为字符串返回
5.File类和Directory类
注:File类和Directory类都是静态类
(1)Exists:判断一个文件是否存在,返回bool类型
(2)Copy:将现有的文件复制到新文件。可以覆盖同名文件
(3)Move:将指定文件移到新位置
(4)Create:创建一个新文件
(5)D
elete:删除指定的文件。如果文件不存在,则不引发异常
(6)GetCreateTime:返回指定文件或目录的创建日期和时间
(7)GetLastAccessTime:返回上次访问文件或目录的日期和时间
(8)CreateText:创建或打开一个文件用于写入文本
(9)GetLastWriterTime:返回上次写入指定文件或目录的日期和时间
(10)OpenRead:打开现有文件已进行读取
(11)OpenWriter:打开现有文件已进行写入
写文本文档
创建一个文件流(须引入命名空间Using System.IO;)
创建相应的读写器;
执行读写操作;
关闭读写器;
关闭文件流。
创建文件流
FileStream fs=new Filesream( path, FileMode.Open,FileAccess.Read);
(指定文件路径,指定文件的打开方式,文件的可访问权限);
FileMode属性:
Append 打开现有文件并查到文件尾,或创建新文件;
Create 指定操作系统创建新文件,若文件已存在则覆盖
Open 操作系统应打开现有文件;
OpenOrCreate 指定操作系统应打开文件如果文件存在,否则创建新文件;
CreateNew 指定操作系统应创建新文件如果文件已存在,不覆盖;
Truncate 指定操作系统应打开现有文件,果一旦开,就将被截断为零字节大小。
FileAccess 属性:
Read 对文件的读访问,可读取文件中的数据;
Writer 文件的写访问,可将数据写入文件;
ReadWriter 对文件的读访问和写访问,可读取文件中的数据也可将数据写入文件。
StreamReader: 文本文件读入器
StreamWriter:文本文档写入器
Close: 关闭文件流
文件的写入与读出
//创建一个文件流
string path = @"d:\aa.txt";
//写入
FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write);
//读出
FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read);
//创建一个写入器
StreamWriter sw = new StreamWriter(fs,Encoding.Default);
//创建一个读入器
StreamReader s = new StreamReader(fs,Encoding.Default);
//执行写的操作
for (int i = 0; i < 10;i++ )
sw.WriteLine("hello word!");//无需接收与输出
//执行读的操作
string str=sr.ReadeToEnd();
Console.WriteLine(str);
/
/ 关闭写入器
sw.Close();
//关闭读入器
sr.Close();
//关闭文件流
fs.Close();
Console.Read();
File类和Directory类
File类和Directory类都是静态类
1)Exists:判断一个文件是否存在,返回bool类型
2)Copy: 将现有的文件复制到新文件。可以覆盖同名文件
3)Move: 将指
定文件移到新位置
4)Create:创建一个新文件
5)Delete:删除指定的文件。如果文件不存在,则不引发异常
6)GetCreateTime: 返回指定文件或目录的创建日期和时间
7)GetLastAccessTime:返回上次访问文件或目录的日期和时间
Archive 返回文件的存储状态
Compressed 返回文件是否被压缩
Directory 返回文件是否是一个目录
Encrypted 返回文件是否被加密
Hidden 返回文件是否被隐藏
Offline 表明文件数据是不可得的
ReadOnly 表明文件是只读的
System 表明文件是一个系统文件
第十章 对话框类控件的应用
对话框是与程序与用户交互获取用户指令的特殊的窗体。
使用方法:
OpenFileDialog(打开文件对话框)
SaveFileDialog(保存文件对话框)
ColorDialog(颜选择对话框)
FontDialog(字体选择对话框)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论