using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 面向对象继承_复习
{
class Program
{
static void Main(string[] args)
{
//里氏转换:1、子类可以赋值给父类(如果一个地方需要父类作为参数,我们可以传递一个子类对象)
//2、如果父类中装的是子类对象,则可以将这个父类强转为子类对象
Person p = new Student();
//is as
Student ss = p as Student;//as 是先判断,如果能转换,那就转换过去,如果不能,那就返回一个空
ss.StudentSayHi();
if (p is Student)//is 是仅作为判断,返回bool值,true或者false
{
((Student)p).StudentSayHi();
}
else
{
Console.WriteLine("转换失败");
}
ArrayList list = new ArrayList();
//Remove RemoveAt RemoveRange Clear Insert InsertRange
//Reverse Sort
Hashtable ht = new Hashtable();
ht.Add(1, "张三");
ht.Add(2, '男');
ht.Add(3, 50000m);
//在键值对集合中,键必须是唯一的
//ht.Add(1,"李四")
ht[1] = "李四";
//ht.ContainsKey 这个判断很重要,判断是否有键,键不可重复,值可以重复
foreach (var item in ht.Keys)
{
Console.WriteLine("{0},{1}", item, ht[item]);
}
//Path类
//File类
//Create Delete Copy Move
byte[] buffer = File.ReadAllBytes(@"F:\程序测试文件夹\new.txt");
//将字节数组中的每一个元素都 要按照我们指定的编码格式解码成字符串
//UTF-8 GB2312 GBK Unicode
string s = Encoding.GetEncoding("UTF-8").GetString(buffer);
Console.WriteLine(s);
//没有这个文件的时候创建一个,有的话就覆盖掉
string str = "今天天气好晴朗,处处好风光";
//需要将字节转换成字节数组
byte[] buffer2 = Encoding.Default.GetBytes(str);
File.WriteAllBytes(@"F:\程序测试文件夹\ceshi.txt",buffer2);
Console.WriteLine("写入成功");
Console.ReadKey();
}
}
public class Person
{
public void PersonSayHi()
{
Console.WriteLine("我是人类");
}
}
public class Student : Person
{
public void StudentSayHi()
{
Console.WriteLine("我是学生");
}
}
}