C#基础知识

1、里氏转换

假定有三个类、一个为父类Person,两个子类Student、Teacher都继承了这个父类
1)、子类可以赋值给父类

Person person = new Student();
            person.PersonSayHello();


2)、如果父类中装的是子类的对象,那么可以将这个父类强转为子类对象

 Person person = new Student();
            person.PersonSayHello();
           
            Student student= (Student)person;
            student.StudentSayHello();

2、子类对象可以调用父类中的成员,但是父类对象永远都只能调用自己的成员

3、is 和as 的区别
1)、is:表示类型转换,如果能成功,返回一个true,否则返回一个false
2)、as:表示类型转换,如果能成功,返回一个这个对象,否则返回null

4、FileStream类的使用
1)、读取数据
 

FileStream fileStream = new FileStream(@"C:\Users\Lai\Desktop\Text.txt", FileMode.OpenOrCreate, FileAccess.Read);
            byte[] buffer = new byte[1024*1024*5];
            //返回本次实际读取到有效字节数
            int r = fileStream.Read(buffer, 0, buffer.Length);
            //将字节数组中每一个元素按照指定的编码格式解码成字符串
          string a =  Encoding.Default.GetString(buffer,0,r);
            //关闭流
            fileStream.Close();
            //释放流占用的资源
            fileStream.Dispose();


5、将创建文件流对象的过程写在using中,会自动帮助我们释放所占用的资源            
2)、写入数据
 

using (FileStream fsWrite = new FileStream(@"C:\Users\赖国强\Desktop\Text.txt", FileMode.OpenOrCreate, FileAccess.Write))
            {
                string str = "hei";
                byte[] buffer1 = Encoding.Default.GetBytes(str);
                fsWrite.Write(buffer1,0,buffer1.Length);
            }


6、虚方法
在父类的方法中加入virtual,表示该方法可以被子类重写,在子类的方法前面加入override。表示这个方法要被重写

class Person
{
    public virtual void Hello()
    {
        Console.WriteLine("Say hello!");
    }
}

class Student:Person
{
    public override void Hello()
    {
        Console.WriteLine("Hello say!");
    }
}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值