随笔分类 - C#基础知识
复习C#基础知识时创建
摘要:1.csproj文件: .net 开发环境中建立项目时,会产生 .csproj 文件,这是C#的工程文件,其中记录了与工程有关的相关信息,例如包含的文件,程序的版本,所生成的文件的类型和位置的信息等。 Visual Studio会根据csproj里的XML定义来管理项目文件以及相关其他一些种类非常丰
阅读全文
摘要:第一种:使用JsonConvert反序列化 引入命名空间 using Newtonsoft.Json;//现在用的,还在维护,比较新 然后可以直接使用这个序列化类,他就像一个帮助类一样,可以直接点,比如 //用户对象类型的集合,用来接收反序列化后的对象类型的集合 List<UserInfo> use
阅读全文
摘要:Dictionary用法 Dictionary提供快速的基于键值的元素查找。 结构是:Dictionary <[key] , [value] >,当你有很多元素的时候可以用它。 它包含在System.Collections.Generic名控件中。在使用前,你必须声明它的键类型和值类型。 using
阅读全文
摘要:隐式类型变量var 定义一个变量的时候不需要给出具体的类型,可以使用var代替 var 和 object区别 var 会自动拆装箱做类型转换,而obj不会, var 是强类型,它就是一个具体的类型,它会根据值去推理类型,只是一个语法糖,方便用 Object 是弱类型 var不会浪费效率,object
阅读全文
摘要:ref 修饰符,指定参数由引用传递,可以由调用方法读取或写入。 out 修饰符,指定参数由引用传递,必须由调用方法写入。 in 修饰符,指定参数由引用传递,可以由调用方法读取,但不可以写入。 遂码之,首先是in: 可以看到,不能对in参数赋值,可见只能读,不能写 再来out: 可以看到,out参数不
阅读全文
摘要:MD5加密 用于将用户加密后密码存数据库 /// <summary> /// 将字符串使用MD5加密 /// </summary> /// <param name="str">需要加密的字符串</param> /// <returns>返回加密后的字符串</returns> public stati
阅读全文
摘要:接口 是一种规范,是一种约定,约定必须要具备的功能 接口里边的方法默认都是公共的,默认都是抽象的,所以定义的时候只需要定义返回值方法名参数,public和abstract会自动加上。 接口的特点 1、接口中的成员不能有任何实现(“光说不做”,只是定义了一组未实现的成员),接口里边的方法都是抽象的,不
阅读全文
摘要:值传递和引用传递 值类型在复制的时候,传递的是这个值得本身。 引用类型在复制的时候,传递的是对这个对象的引用(在堆中的内存地址)。 比如: 写一个类 public class Person { private string _name; public string Name { get { retu
阅读全文
摘要:抽象类和抽象方法 多个类抽象出一个父类,这个类就是抽象类,在这个类里提供一些抽象的成员,让子类去重写,不同的子类可以重写出不同的结果,以此实现多态。 当父类中的虚方法不知道如何去写实现的时候,可以考虑将父类写成抽象类,将方法写成抽象方法。 这是领导思维,设置一个中层,让中层去带调用各个底层的实现,而
阅读全文
摘要:虚方法 实现多态的三种手段:1、虚方法 2,抽象类 3,接口 有如下三个有继承关系的类 父类:Person 子类:Chinese、American 他们都有一个SayHello方法 //父类 public class Person { private string _name;//姓名字段 publ
阅读全文
摘要:FileStream 用于操作字节(所有的文件本质都是字节形式存放的),也就是可以操作任意类型的文件 这个文件流可以用于操作大文件,对内存压力小 StreamReader和StreamWriter:用于操作字符(字符串),方便用于操作文本文件,和FileStream一样,都是用于操作大文件,这个针对
阅读全文
摘要:装箱、拆箱 值类型和引用类型之间的里氏转换就是拆装箱 装箱:就是将值类型转换为引用类型。 拆箱:将引用类型转换为值类型。拆箱后的变量只有数据,没有了对数据操作的方法,轻量化,只有装过箱 才能拆箱。 看两种类型是否发生了装箱或者拆箱,要看,这两种类型是否存在继承关系。 装箱和拆箱操作 int n =
阅读全文
摘要:文本文件编码 文本文件有不同的存储方式,将字符串以什么样的编码格式保存为二进制,这个就是编码 编码格式:指的就是你以怎样的形式来存储字符串,常用编码形式:UTF-8、ASCII、Unicode,gbk // a - z 0 - 9 Ascii 117 u > 汉字 >GB2312 GBK int n
阅读全文
摘要:File类 是操作文件的类,该类在System.IO下,是静态类,直接类目加方法即可使用。 File类只能用来读取小文件,因为他是一下子全部读进来,在读的时候很浪费内存,如果读大文件需要用文件流,所以一般用来操作文本文件。 在项目中最好使用相对路径,提高可值性 常用方法 1创建文件(除了txt文件,
阅读全文
摘要:Path类 Path类是一个专门用来操作路径的静态类 常用方法 string path = @"D:\NET\C#复习\练习\测试文本.txt"; //获得文件名 Console.WriteLine(Path.GetFileName(path)); //获得文件名,不包含后缀 Console.Wri
阅读全文
摘要:键值对集合 键值对集合:指Hashtable和Dictionary Hashtable哈希表 Dictionary字典 多半用Dictionary字典,无论什么时候,都应该使用Dictionary<K,V>,理由如下: 1、Dic是类型安全的,这有助于我们写出更健壮更具可读性的代码,而且省却我们强制
阅读全文
摘要:ArrayList集合 可以存任意的数据类型 但是现在基本用泛型集合List,因为List是一个类型安全的,所以基本不用ArrayList集合 而且ArrayList集合取值不方便,全是object类型, 添加元素 1,添加单个元素add() .add方法参数是object,因为object是一切数
阅读全文
摘要:里氏转换 1)、子类可以赋值给父类 2)、如果父类中装的是子类对象,那么可以讲这个父类强转为子类对象。 里氏转换就是将父类转换为合适的子类,或者是用子类代替一下父类,也就是将子类对象给父类 作用 子类对象可以调用父类中的成员,但是父类对象永远都只能调用自己的成员。一开始只有儿子能用爹的方法,里氏转换
阅读全文
摘要:继承 我们可能会在一些类中,写一些重复的成员,我们可以将这些重复的成员, 单独的封装到一个类中,作为这些类的父类。 比如:我们写一个Person类作为基类 public class Person { private string _name; public string Name { get { r
阅读全文
摘要:字符串 1)、字符串的不可变性 当你给一个字符串重新赋值之后,老值并没有销毁,而是重新开辟一块空间存储新值。 当程序结束后,GC扫描整个内存,如果发现有的空间没有被指向,则立即把它销毁。 图示如下: 所以,当多个string类型的变量的值一样时,他们在堆中其实是共用一个空间的值的。 图示如下两图:
阅读全文