C#学习笔记 10.01

C#学习笔记 10.01

(学习视频来自bilibili的传智播客赵老师基础教学视频)

强调一下

每一个类都应该写在一个新的类文件里面,不要都写在主文件里。

继承

在写类的时候会发现,好多的类中有相同的属性和方法,那么就可以将这些相同的属性和方法写在一个类中,而其他的类去继承他,这样就不需要讲这些相同的代码重复书写多次了。这样,这个被继承的类被称为父类(基类),这些继承了他的类被称为子类(派生类)。
一个子类,当他继承了父类的时候,继承了父类的属性和方法,但是没有继承父类的私有字段,也继承不了父类有参数的构造函数。
所以当我们需要的时候,就要将父类的有参构造函数进行显式调用,使用关键字 “:base”
(与之相似的是,当我们写构造函数的重载时候可能会一段代码写好多次,我们可用 :this 来显式的调用自身的构造函数)

特性
  1. 单根性,一个子类只能继承一个父类
  2. 传递性,可以逐级继承,所有的都会被继承下来
  3. 在 C# 中 Object 这个类是所有类型的基类
  4. 当子类与父类有相同的方法时,会顶掉父类的方法(不过如果你就是像这么做,前面加个new会比较好,因为这样就不会出警告标记了,强迫症拯救。。。)

举个例子

    class Program
    {
        static void Main(string[] args)
        {
            XueSheng xiaoMing = new XueSheng("小明", "202032b");
            xiaoMing.CH();
            xiaoMing.XueXi();
            Console.WriteLine(xiaoMing.Name);
            Console.ReadKey();
        }
    }
    public class Ren
    {
        public Ren(string name)
        {
            this._name = name;
        }
        string _name;
        public string Name
        {
            get { return _name; }
            set { _name = value; }
        }
        public void CH()
        {
            Console.WriteLine("吃喝");
        }
    }

    public class XueSheng : Ren
    {
        string _xueHao;
        public XueSheng(string name, string xueHao) : base(name)
        {
            this._xueHao = xueHao;
        }
        public void XueXi()
        {
            Console.WriteLine("我会学习");
        }
    }

里氏转换

  1. 子类对象可以转换为父类,也就是子类可以赋值给父类
  2. 如果这个父类中装的是子类对象,那么可以将这个父类强制转换为对应的子类对象

表达式和我们在 double 转 int 的时候一样 (子类型)父类型对象,如果要转换的父类型对象的确是前面的子类型,那么就会转换成功,不是的话就会抛出异常。因为这种方法会抛异常,所以我们一般不用这个,而是用 as。
目标类型 变量名 = 要转换的对象 as 目标类型;
如果转换成功,那么赋值的就是一个转换过的对象,如果转换失败,赋值的就是 null
用 as 可以直接完成赋值这个过程,是一个先赋值,在通过判断是否为 null 来确定是否转换成功的方式。
我们也可以用 is 这个返回的是 bool 值,也就是直接判断能否转换,可以再配合上面那个抛异常的强转使用,从而实现赋值。

从流程上来想,as 的运行效率可能会低一点,因为用完 as 之后也是要判断一下是不是 null 的,不过没有测试过。。。主要是我还没整明白咋测试~~欢迎大佬们评论指教。。。。

File 类

快速添加命名空间 Alt + Shift + F10

File 中的方法都是静态的,
File.Exists() 判断文件是否存在,参数是文件路径加名称,详细路径,记得用@
File.Create() 创建文件,参数是文件路径加名称,详细路径,记得用@
File.Delete() 删除文件,值得注意的是,这是彻底删除,并不会进入回收站。
File.Copy() 复制文件,第一个路径是原位置,后面的是目标位置
File.Move() 剪切文件,两个路径和 copy 一样

内容概要:本文介绍了一个基于多传感器融合的定位系统设计方案,采用GPS、里程计和电子罗盘作为定位传感器,利用扩展卡尔曼滤波(EKF)算法对多源传感器数据进行融合处理,最终输出目标的滤波后位置信息,并提供了完整的Matlab代码实现。该方法有效提升了定位精度与稳定性,尤其适用于存在单一传感器误差或信号丢失的复杂环境,如自动驾驶、移动采用GPS、里程计和电子罗盘作为定位传感器,EKF作为多传感器的融合算法,最终输出目标的滤波位置(Matlab代码实现)机器人导航等领域。文中详细阐述了各传感器的数据建模方式、状态转移与观测方程构建,以及EKF算法的具体实现步骤,具有较强的工程实践价值。; 适合人群:具备一定Matlab编程基础,熟悉传感器原理和滤波算法的高校研究生、科研人员及从事自动驾驶、机器人导航等相关领域的工程技术人员。; 使用场景及目标:①学习和掌握多传感器融合的基本理论与实现方法;②应用于移动机器人、无人车、无人机等系统的高精度定位与导航开发;③作为EKF算法在实际工程中应用的教学案例或项目参考; 阅读建议:建议读者结合Matlab代码逐行理解算法实现过程,重点关注状态预测与观测更新模块的设计逻辑,可尝试引入真实传感器数据或仿真噪声环境以验证算法鲁棒性,并进一步拓展至UKF、PF等更高级滤波算法的研究与对比。
内容概要:文章围绕智能汽车新一代传感器的发展趋势,重点阐述了BEV(鸟瞰图视角)端到端感知融合架构如何成为智能驾驶感知系统的新范式。传统后融合与前融合方案因信息丢失或算力需求过高难以满足高阶智驾需求,而基于Transformer的BEV融合方案通过统一坐标系下的多源传感器特征融合,在保证感知精度的同时兼顾算力可行性,显著提升复杂场景下的鲁棒性与系统可靠性。此外,文章指出BEV模型落地面临大算力依赖与高数据成本的挑战,提出“数据采集-模型训练-算法迭代-数据反哺”的高效数据闭环体系,通过自动化标注与长尾数据反馈实现算法持续进化,降低对人工标注的依赖,提升数据利用效率。典型企业案例进一步验证了该路径的技术可行性与经济价值。; 适合人群:从事汽车电子、智能驾驶感知算法研发的工程师,以及关注自动驾驶技术趋势的产品经理和技术管理者;具备一定自动驾驶基础知识,希望深入了解BEV架构与数据闭环机制的专业人士。; 使用场景及目标:①理解BEV+Transformer为何成为当前感知融合的主流技术路线;②掌握数据闭环在BEV模型迭代中的关键作用及其工程实现逻辑;③为智能驾驶系统架构设计、传感器选型与算法优化提供决策参考; 阅读建议:本文侧重技术趋势分析与系统级思考,建议结合实际项目背景阅读,重点关注BEV融合逻辑与数据闭环构建方法,并可延伸研究相关企业在舱泊一体等场景的应用实践。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值