c#常识

C# 常识

风格

方法 封装 属性 大写开头
局部变量 小写
参数 小写
私有成员 小写

1.c#基本类型

1.1值类型

  1. bool, System.Boolean 类型
  2. sbyte, System.SByte 类型
  3. byte, System.Byte 类型
  4. short, System.Int16 类型
  5. ushort, System.UInt16 类型
  6. int, System.Int32 类型
  7. uint, System.UInt32 类型
  8. long, System.Int64
  9. ulong, System.UInt64
  10. float, System.Singe 类型
  11. double, System.Double 类型
  12. decimal, System.Decimal
  13. char, System.Char
  14. enum, System.Enum 类型,一种由一组称为枚举数列表的命名常量组成的独特类型。
  15. struct 类型,通常用来封装小型相关变量组,例如:矩形的坐标或库存商品的特征。

1.2 引用类型

  • 引用类型的变量存储对实际数据的引用。
  • 申明引用类型关键字:class、interface、delegate。
  • 内置引用类型:dynamyic、object、string。

2. Struct初识

在 C# 中,结构体是值类型数据结构。它使得一个单一变量可以存储各种数据类型的相关数据。struct 关键字用于创建结构体。结构体是用来代表一个记录。

struct Student
{
    public string Name;
    public int Age;
    public Student(string name,int age)
    {
        this.Name = name;
        this.Age = age;
    }
}
class a
{
    static void Main(string[] args)
    {
        Student s = new Student("Jack",18);
        Console.WriteLine(s.Name);
        Console.WriteLine(s.Age);
        //Jack
        //18
    }
}

2.1 特点

以上已经使用了一个Student的结构,c#中结构有以下特点:

  • 结构可带有方法、字段、索引、属性、运算符方法和事件。
  • 结构可定义构造函数,但不能定义析构函数。但是不能为结构定义无参构造函数。无参构造函数(默认)是自动定义的,且不能被改变。
  • 与类不同,结构不能继承其他的结构或类。
  • 结构不能作为其他结构或类的基础结构。
  • 结构可实现一个或多个接口。
  • 结构成员不能指定为 abstract、virtual 或 protected。
  • 当使用 New 操作符创建一个结构对象时,会调用适当的构造函数来创建结构。与类不同,结构可以不使用 New 操作符即可被实例化。
  • 如果不使用 New 操作符,只有在所有的字段都被初始化之后,字段才被赋值,对象才被使用。

2.2 struct和class的区别

  • 类是引用类型,struct是值类型
  • 在托管堆上创建类的实例,在栈上创建struct实例
  • 类实例的赋值,赋的是引用地址,struct实例的赋值,赋的是值
  • 类作为参数类型传递,传递的是引用地址,struct作为参数类型传递,传递的是值
  • 类没有默认无参构造函数,struct有默认无参构造函数
  • 类支持继承,struct不支持继承
  • 类偏向于"面向对象",用于复杂、大型数据,struct偏向于"简单值",比如小于16字节,结构简单

3. Class

3.1 终结器

终结器是其一个比较特殊的成员函数,当类的对象超出范围时执行。

终结器的名称是在类的名称前加上一个波浪形(~)作为前缀,它不返回值,也不带任何参数。

终结器用于在结束程序(比如关闭文件、释放内存等)之前释放资源。析构函数不能继承或重载。

using System;
namespace LineApplication
{
   class Line
   {
      private double Length;   // 线条的长度
      public Line()            // 构造函数
      {
         Console.WriteLine("对象已创建");
      }
      ~Line()                  //析构函数
      {
         Console.WriteLine("对象已删除");
      }

      public void setLength( double len )
      {
         Length = len;
      }
      public double getLength()
      {
         return Length;
      }

      static void Main(string[] args)
      {
         Line line = new Line();
         // 设置线条长度
         line.setLength(6.0);
         Console.WriteLine("线条的长度: {0}", line.getLength());          
      }
   }
}

3.2 继承

当创建一个类时,不需要完全重新编写新的数据成员和成员函数,只需要设计一个新的类,继承了已有的类的成员即可。这个已有的类被称为的基类,这个新的类被称为派生类。


class Shape
{
    protected int Width;
    protected int Height;
    public void setWidth(int w)
    {
        Width = w;
    }
    public void setHeight(int h)
    {
        Height = h;
    }
}

// 派生类
class Rectangle: Shape
{
    public int getArea()
    {
        return (Width * Height);
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值