C#:一个菜鸟学习历程

值类型:

  • byte:0到255
  • sbyte:-128到127
  • short:短整型-32768到32767
  • ushort:无符号短整型0到65535
  • int:整形 -2147483648到214748647
  • unint:无符号整形 0 到4294967295
  • long:长整型
  • ulong:有符号长整型
  • char:16位字符
  • float:32位单精度浮点后缀以f/F结束部分大小写(1.15f)(single32)
  • double:64位双精度浮点后缀(10.00)后面可以以d结束或不写系统会默认
  • decimal:货币值128位
  • bool:true、false(boolean)

结构体:

struct Point                     //结构体和类的区别是:它只能定义变量,不能初始化赋值
      public double b;
      public double c;         //如果要初始化赋值就要调用构造函数
      //构造函数
      public Point(double x,double y)   //需要注意的是命名必须和结构体一致,且结构体里面有定义几个变量这里必须一致
      {
                b=x;
                c=y;
      }
}

常量:

整数常量可以是十进制、八进制、十六进制的常量。前缀指定基数:0x或0X表示十六进制,0表示八进制,没有前缀则表示十进制。
整数常量也可以有后缀,可以是U和L的组合,其中,U和L分别表示unsigned和long。后缀可以是大写或者小写,多个后缀以任意顺序进行组合(不能重复后缀)
浮点常量使用小数形式或指数形式磊表示浮点常量。使用小数形式表示时,必须包含小数点、指数或同时包含两者。使用指数形式表示时,必须包含整数部分、小数部分或者同时包含两者。有符号的指数使用e或者E表示的

封装:

internal访问修饰符允许一个类其成员变量和成员函数暴露给当前程序中的其他函数和对象。换句话说,带有interinternal访问修饰符的任何成员可以被定义在该成员所定义的应用程序内的任何类或方法访问。

单问号与双问号

double? num3 = new double?();单问号表示除了被定义的类型还可以为null
num3 = num1 ?? 5.34; 双问号表示如果值为空,则使用默认值

Array类:

逆转数组:Array.Reverse(list)
排序数组:Array.Sort(list)

静态成员变量

在函数外部实例化:

class StaticVar
    {
       public static int num;
        public void count()
        {
            num++;
        }
        public static int getNum()
//静态成员函数
        {
            return num;
        }
    }
static void Main(string[] args)
        {
            StaticVar s = new StaticVar();
            s.count();
            s.count();
            s.count();                   
            Console.WriteLine("变量 num: {0}", StaticVar.getNum());//静态成员函数实例化
            Console.ReadKey();
        }

将类成员函数声明为public static无需实例化即可直接调用类成员函数

class Program
    {
        static void Main(string[] args)
        {
            int num = AddClass.Add(2, 3);  //编译通过
            Console.WriteLine(num);
        }
    }

    class AddClass
    {
        public static int Add(int x,int y)
        {
            return x + y;
        }
    }

反之,如果不声明为static,即使和Main方法属于同一类,也必须经过实例化

 class Program
    {
        static void Main(string[] args)
        {
            Program self = new Program();
            int num = self.Add(2, 3);  //编译通过
            Console.WriteLine(num);
        }

        public int Add(int x, int y)
        {
            return x + y;
        }
    }

类:

通过类前面放置关键字sealed,可以将类声明为封闭类。当一个类被声明为sealed时,他不能 被继承。抽象类不能被声明为sealed
c#多态性:分为静态多态性和动态多态性
静态多态性:分为函数重载,运算符重载
函数重载:您可以在同一个范围内对相同的函数名有多个定义。函数的定义必须彼此不同,可以时参数列表中的参数类型不饿、同,也可以是参数个数不同。不能重载只有返回类型不同的函数声明
动态多态性:通过抽象类和虚方法实现
子类重写需要有override标志

public override int area ()
      {
         Console.WriteLine("Rectangle 类的面积:");
         return (width * height); 
      }

虚方法可以在不同的子类中有不同的实现,关键字时virtual

get、set、value

get属性访问器用于返回属性值,而set访问器用于分配新值,这些访问器可以有不同的访问级别
get访问器与方法体类似。他必须返回属性类型的值。执行get访问器相当于读取字段的值
get访问器必须以return或throw语句终止,并且控制权不能离开访问体
value关键字用于定义由set取值函数分配的值
不实现set取值函数的属性是只读的

你可能感兴趣的:(C#:一个菜鸟学习历程)