码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • c#基础0-类型、起步


    整理和记忆一部分学习过程中的基础知识

    文章目录

        • 类型
            • 获取基本类型
          • 引用类型
          • 值类型
          • 基本数据类型
          • 自定义数据类型常用的关键字
            • 装箱
            • 拆箱
          • 数值类型的取值范围
        • 访问修饰符
        • 方法
        • 类型转换
        • 语句
        • 类
          • 类方法的重载
          • 成员隐藏
        • 其他

    类型

    C# 是强类型静态语言,每一个变量具有类型,描述这个变量占内存空间大小。

    变量的类型,决定了:

    • 变量存储时所需的内存空间大小

    • 变量的最大值、最小值,也就是取值范围

    • 这个类型所包含的一些默认成员方法 GetProperties() GetMethods() string.Empty

    • 这个类型由哪个基类派生

    • 程序运行时,变量在内存中的分配位置,堆区还是栈区。
      一般而言,堆区存放对象实例,堆空间比较大、读写慢;
      栈区存放函数上下文,栈空间比较小、读写快

    • 这个类型允许的一些操作 + - += -=

    获取基本类型

    Type t = typeof(num1)

    使用反射时会更多的用到 Type 类

    引用类型

    类(对象)、接口、委托、数组、字符串

    引用类型的变量,保存的是它所引用的对象在堆区的起始地址,这个对象内部的成员属性,也是存放在堆区。

    值类型

    原始类型(byte int short long char double bool 等等)、结构体struct、枚举enum

    基本数据类型

    object string 等等 又叫已定义数据类型、内置数据类型、基本数据类型

    自定义数据类型常用的关键字

    class interface delegate struct enum
    这些关键字就是让程序员可以自定义 类、接口、委托、结构体、枚举

    装箱

    用一个对象实例后,得到的变量,将栈中的值变量,保存到堆中的某一地址的内存中

    System.Object obj=i;

    拆箱

    将堆中某个对象实例后,得到变量的内容,转换为栈中的某个类型的值变量

    int j=(int)obj;

    参考阅读–C#核心概念–装箱和拆箱

    数值类型的取值范围

    整数 int 范围在 [-2147483648,2147483647] int.MaxValue

    双精度 double 范围在 [-1.7976931348623157E+308,1.7976931348623157E+308]

    十进制数 decimal 范围在 [-79228162514264337593543950335,79228162514264337593543950335]

    访问修饰符

    不写时,默认是私有 private

    static 表示这个成员属于类,而不是类的实例,所以可以通过 类名 . 成员 访问,而不是通过 类实例 . 成员 访问

    方法

    方法的签名,即方法名 + 括号内的形式参数类型

    方法调用时,可以使用位置自变量或者命名自变量或者一起用

    命名自变量就是可以改变传参顺序,如下

    public virtual int Drive(int miles, int speed) { /* Method statements here */ return 1; }
    
    moto.Drive(speed: 60, miles: 170);
    
    • 1
    • 2
    • 3

    写自定义构造器时不像C++语言,c#直接写 public MyClassName(){get;set;}

    类型转换

    隐式

    子类向父类转换后,父类不能再访问子类特有的成员

    显式

    object myobj;
    Book mybook = myobj as Book;
    StoryBook myStoryBook = (Book)mybook;
    
    • 1
    • 2
    • 3

    语句

    int x =1;

    这叫1个声明语句,包含了初始化器

    int x;x=1;

    这叫声明变量后,为变量赋值(初始化器),算2个语句

    类

    类的默认访问级别是 internal ,在当前程序集下的命名空间和类的派生类中有效

    类是单继承的

    子类的访问级别不能超过父类

    seal 修饰的类不能作为基类

    protected 限制了类的成员只能被同一继承链的派生类访问

    类方法的重载

    基类中该方法用 virtual 修饰,派生类中该方法用 override 修饰

    派生类调用基类的某个构造函数时,通过 base 关键字调用指定父类的构造函数

    	//这是 Apple 类的第二个构造函数。
        //它使用“base”关键字指定
        //要调用哪个父构造函数。
        public Apple(string newColor) : base(newColor)
        {
            //请注意,该构造函数不会设置 color,
            //因为基构造函数会设置作为参数
            //传递的 color。
            Debug.Log("2nd Apple Constructor Called");
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    成员隐藏

    在派生类中使用 new 关键字修饰与基类同名的方法,就能隐藏掉基类同名的方法。(如果不隐藏,则派生类会调用到基类的同名方法)

    其他

    线程等待 1 秒 Thread.Sleep(1000);

    unity官网课堂中的C#中级编程

  • 相关阅读:
    (十)centos7案例实战——实现nginx代理访问redis服务
    (2023,DALL-E3,两步微调,标题重建)通过更好的标题改进图像生成
    速溶颗粒:实验中的好伙伴
    基于单片机的水位检测系统仿真设计
    【31-业务开发-基础业务-品牌管理-级联类别信息业务功能实现-品牌管理和商品分类管理俩者业务关联出现数据冗余,导致数据不同步的问题-开启事务-项目测试】
    数据结构与算法笔记:基础篇 - 分治算法:谈一谈大规模计算框架MapReduce中的分治思想
    字节跳动 DanceCC 工具链系列之Xcode LLDB耗时监控统计方案
    C语言的基础知识
    python中的函数和类的区别
    18 软专
  • 原文地址:https://blog.csdn.net/qq_42534809/article/details/126565792
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号