c#学习笔记规整

面向对象 类:动物、 人; 对象:小明;

封装安全简洁 继承节约多态(李氏替换 显示隐氏) 多态

一。

1.快捷键 shift+alt+f10//导入命名空间ctrl+e+f设置文档格式

二。

1. sizeof()查看数据类型大小

2. name.getType().tostring()//获取是什么类型

name.GetType().BaseType.toString()//父类什么类型

三。1.数据类型转换string变int int.pase();

//有2. Convert.ToInt32();

2.如果Person BeatStudent:Student Student:Person

那么Person p=new BeatStudent();//向下类型转换隐式转换(显示)

BeatStudent bs=p as BeatStudent;//向上类型转换向上转换用as(隐士)

if(bs!=null) { }

3.params//可变参数(int a,int b,params int c) ### 1.必须方最后可传值可不传可传null所以要判断是否为空

4.out/ref//引用类型传递out使用后要在方法中赋值还可以将值类型改变

四。集合

1.ArrayList ,List//add()添加inset(index,na)//第几个填入什么内容[0]获取Count有多少addrange()添加一个集合reamerAt(index)删除第几个

sort()排序方法reverse()反转contains("ss")//判断是否包涵toarray()转换为数组//sort排序详解有一个不带参数的实现类的内容排序要在判断的类中实现IComparable

而有参数的实现时要传入一个实现了IComparer的类sort(new icom());

2.Hashtable, Dictionarryadd("","");键值键不可以重复

3.foreach只读

4.可以遍历类但是要写一个方法实现一个借口

五。文件流

Directory目录

File文件

FileStream fswWrite=new FileStream("first.txt",FilMode.create,FileAcces.Write);//第一个是文件名,第二个文件模式Append加到文件后面,create覆盖,第三个参数是判断读写模式

Byte[] byt = System.Text.Encoding.UTF8.GetBytes(name);//将string转换为byte型

注意:文件流读写第二个参数要改变入读open写appde

#region 流读 using (FileStream file = new FileStream("C:/Users/张佳辉/Desktop/c#/path/A0/abc0.txt", FileMode.Open , FileAccess.Read)) { Byte[] byt = new Byte[file.Length]; file.Read(byt, 0, byt.Length); string ms = System.Text.Encoding.UTF8.GetString(byt); Console.WriteLine(ms); } #endregion #region 流写 using (FileStream file = new FileStream("C:/Users/张佳辉/Desktop/c#/path/A0/abc0.txt", FileMode.Append, FileAccess.Write)) { string name = "互联网互联网"; Byte[] byt = System.Text.Encoding.UTF8.GetBytes(name);//将string转换为byte型 file.Write(byt,0,byt.Length); } #endregion

六。正则匹配

Math math=Regex.Math(mse,".+?");写正则?可以终止贪婪模式按最少匹配

C#中使用正则方法

Regex.IsMatch(字符串,正则)用来确定给定的字符串是否匹配正则

Regex.Math(字符串,正则)从给定的字符串中匹配一个符合正则提取不要加^和$

Regex.Maths(字符串,正则)从给定的字符串中匹配所有符合正则提取不要加^和$

regex.replace(字符串,正则)替换所有字符串为另一个

1.Math math=Regex.Math(字符串,正则)//math.value//表示结果

2.MathCollection math=Regex.Maths(字符串,正则)//foreach(match item in matchs) 循环math.value//表示结果//表示结果//item.Groups[1].value//Group[1]表示第一个()组;

3.WebClient//访问web服务器类

WebClient client=new WebClient();//访问web服务器类

string html=client.DoewnLoadSrting("网页地址");//DoewnLoadSrting下载网页

七。委托(delegate)是一种数据类型把变化的东西封装起来传递的是类

八。反射 通过反射可以获取对象的程序集

1.type public class Myclass { } //通过type获取对相 
 Myclass m=new Myclass(); 
 Type typeMyClass=m.gettype(); //如果没有创建对象
 Type typeMyClass=typeof(Myclass); //获取类里的所有字段信息 
 FieldInfo[] fields=typeMyClass.GetFidelds();
 for(){ fields[i].name } //获取类里的所有属性信息 P
ropertyInfo[] fields=typeMyClass.GetProperties(); 
 for(){ fields[i].name
 }
 2.Assembly动态加载程序集 
 //获取程序集
 Assembly asm=Assebly.loadFile("");//路径是绝对路径(是一个类库) //获取程序集中的所有类型 Type[] types=asm.GetTypes(); for(int i=0;i<types.Length;i++){ types[i].FullName } //获取程序集中所有的public类 Type[] types=asm.GetExportedTypes(); for(int i=0;i<types.Length;i++){ types[i].FullName } //获取class为person的type类Invoke()调用方法 Type typePerson = asm.GetType("_07TestDll.Person"); //调取person的SayHi方法 MethodInfo method = typePeson.GetMethod("SayHi"); //创建一个As的对象 //通过type // Activator.CreateInstance方法创建对象 Object objects = Activator.CreateInstance(clas1); method.Invoke(objects,null); Console.WriteLine(method); //调用重载方法 MethodInfo cz = clas1.GetMethod("Aa",new Type[]{typeof(string)}); cz.Invoke( Activator.CreateInstance(clas1),new Object[]{"大家好"}); 3.隐式类型 var p=new {name="jdnck",age=18}; //隐式类型只能读取不能赋值 4.扩展方法 //扩展方法 //必须用this关键字指定方法或属性必须在静态类里 #region 扩展方法 Myclass my = new Myclass(); my.query(); string n="大家好"; Console.WriteLine( n.Count()); #endregion public static class Dass { //为string类型的n创建扩展方法 public static int Count(this string n) { return n.Length; } public static void query(this ConsoleApplication6.Program.Myclass my) { Console.WriteLine("好开兴"); } }

九。xml标记性语言描述数据

十。自定义泛型

*重新定义this可以改变类的应用

泛型类,泛型接口,泛型实现方法

class Program { static void Main(string[] args) { Myclass<string> classs = new Myclass<string>(); classs[0] = "开心"; classs[1] = "你好"; } } public class Myclass<T> { public T[] _date = new T[5]; public T this[int index] { get { return _date[index]; } set { _date[index] = value; } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值