C#基础

本文介绍了C#编程语言的基础知识,包括变量初始化、类型推断、常量定义、预定义数据类型、流控制、枚举、数组及命名空间等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

变量

变量初始化
  • C#编译器要对变量进行初始化之后才能在操作中引用变量。可以有两个方式确保变量进行了初始化,
  • 1、变量是类或结构中的字段,没有显示初始化时,默认是0
  • 2、方法的局部变量必须显示的初始化。编译器会检测所有可能的路径,如果发现在变量初始化之前调用则就会产生错误。
  • 类型推断
  • 类型推断有var关键字
  • 常量
  • 在变量前面加上const就变为声明常量了,常量具有如下特征
  • 1、常量必须在声明时初始化,且初始化之后就不能再修改了。
  • 2、常量的值必须能在编译时进行计算,因此不能用变量来初始化常量。
  • 3、常量总是静态的,不允许在前面加static。
  • 预定义数据类型
  • 值类型和引用类型
  • 值类型存储在堆栈中,引用类型存储在托管堆上。
  • 如果变量是引用,则可以将其值置为null,表示不引用任何对象。
  • 基本数据类型都是值类型。C#有15个预定义类型,其中string和object为引用类型。
  • 整型
  • image
  • uint ui = 1234U;
  • long l = 1234L;
  • ulong = 1234UL;

浮点型

  • image
  • float f = 12.0F;

decimal类型

  • image
  • decimal d = 12.30M;
  • 布尔类型
  • image
  • 与C++不同,0不再表示为false,非0不再表示为true。
  • 字符类型
  • image
  • 与C和C++不同,C#里的char类型是占两个字节。
  • object类型
    • 所有的内置类型和用户自定义的类型都从object派生而来,可以用object引用绑定任何子类型的对象,也可用于反射,同时提供了一般用途的方法。
    • string类型
    • 把一个字符串变量赋给另一字符串变量时,内存中对同一字符串的两个引用,但是,与引用类型不同的是,修改其中的一个变量,就会创建一个全新的string对象。字符串字面量前面加上@,则后面出现/时不会转义。
    • 流控制
  • if、switch、for、while和do-while与C++类似,C#里新增了foreach循环,foreach循环可以迭代集合里的每个元素,如假定arrayofInts为一整型数组,
  • foreach(int i in arrayofInts)
  •   Console.Writeline(i);
  • 枚举
  • 枚举是用户定义的类型,如
  • public Enum timeofDay
  • {
  •    morning = 0,
  •    afternoon = 1,
  •    evening = 2
  • }
  • 数组
  • int[] integers = new int[32]; //声明一个32个元素的整型数组
  • int[] integers;
  • integers = new int[32];//动态声明数组
  • 命名空间
  • 与文件或类型不同,命名空间是一种逻辑组合,而不是物理组合。对于较长的命名空间,可以给其取个别名,如using alias = Namespacename;而命名空间别名的修饰符是::。
  • Main()方法
  • 对于多个Main方法,可以使用/main编译选项,如/main:Classname,来指定哪个方法作为入口函数。
  • 给Main()方法传递参数
  • public static int main(string[] args)
  • {
  •     for(int i = 0; i < args.Length; i++ )
  •        Console.Writeline(args[i]);
  • }
  • C#预处理指令
  • #define和#undef
  • #define DEBUG、#undef DEBUG只是在编译代码时存在,通常和#if、#elif、#else和#endif一起使用。如
  • #if DEBUG
  •    Console.Writeline(“DEBUG MODE”)
  • #endif
  • 编译器遇到#Warning和#error时,会分别产生警告和错误。
  • #region和#endregion用于把一块代码标记为有给定名称的一个块。
  • #region Member Field Declare
  •    int i = 0;
  • #endregion
  • #line用于改变编译器在警告和错误信息中显示的文件名和行号信息。
  • #pragma抑制和恢复指定的编译警告。
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值