C#基础语法一文通(四)

一.简单枚举

v2-9cc130f5937272db17b7fd0ab3363408_b.jpg

语法:(相当于给整型加标签)

        //声明时:
enum moveD:int     //:int不写也行,默认就是int
            {
                Up=0,//后面的值不写也行,默认就是从0开始计数
                Down=1,
                left=2,
                down=3
            }
//传参时:        
private static void  Moveto(moveD move){

        }
//调用时:
Moveto(moveD.Down);

      

二.标志枚举(以及按位运算符) //可多选

相当于标志位法,每个二进制位数代表一个属性

语法:

创建:

               [Flags]         //可以多选的标志位!!!!
        enum personStyle:int{
            tall=1,
            rich=2,
            handsome=4      //每个枚举值实际占2进制中的1位
        }

      

传参给方法后判断:("按位与"判断)

        private static void PrintStyle(personStyle man){
            if((man & personStyle.tall)!=0){    //其实就是在判断标志位上的数值
                Console.WriteLine("高个子");
            }
            if((man & personStyle.rich)!=0){    //也可以写成:(man & personStyle.rich)== personStyle.rich
                Console.WriteLine("土豪");
            }
            if((man & personStyle.handsome)!=0){
                Console.WriteLine("帅哥");
            }
        }

      

调用:("按位或"调用)

                PrintStyle(personStyle.handsome|personStyle.tall); //00000101

      

三.枚举的强制类型转换

int转enum enum转int 都需要强转;

string转Enum: (personStyle)Enum.Parse(typeof(personStyle),"handsome");//用Enum.Parse(类型,字符串)转换成object,再强转成personStyle

Enum转string: tostring(); personStyle.handsome.tostring();

传参时想传 枚举索引值 或者 字符串 也可以,只需要强转一下类型:

        //枚举传法
PrintStyle(personStyle.handsome);
//枚举索引值传法
PrintStyle((personStyle)4);
//字符串传法
PrintStyle((personStyle)Enum.Parse(typeof(personStyle),"handsome"));//用Enum.Parse(类型,字符串)转换成object,再强转成personStyle

      

四.类和对象

1, 创建类

v2-3586255ceca270dbca9a5f2e356b4446_b.jpg
        //例子
using System;
namespace VSc04
{
    class Wife
    {
        private string name;
        private int age;
        public void SetName(string name){
            this.name=name;
        }
        public string GetName(){
            return name;
        }
        public void SetAge(int age){
            this.age=age;
        }
        public int GetAge(){
            return age;
        }
    }
}

      

2. 创建类的实例对象

        static void Main(string[] args)
        {
            Wife myWife=new Wife();
            myWife.SetAge(18);
            myWife.SetName("如花");
            Console.WriteLine(myWife.GetName());
            Console.WriteLine(myWife.GetAge());
        }

      

3. 访问修饰符

private 私有 //变量私有化可以在类中控制参数范围等...,比较灵活 但需要读写两个公开方法来读写 由此引出:字段

public 公有

4. 字段属性(对private 的变量)

         private string name;  //字段
 public string Name{   //字段属性
     get{return name;}//读取时保护,可以写一系列筛选代码
     set{this.name=value;}//写入时保护,可以写一系列筛选代码
        }

      

引用时

        myWife.Name="冰冰";

      

字段属性

v2-ac406b19e34699227658257ce391c18c_b.jpg

自动属性 (快捷输入:prop)

自动属性是对上述字段属性的简写(自动生成一个字段和两个方法) 此写法和上面的写法功能一致.自动生成的字段不可访问.所以,区别是

1'类中如何访问该默认字段呢??看来在类中也只能用get 和set方法访问了.

2'如果要设置get set的具体逻辑,那么自动属性就不合适了

v2-cc3b17d255b31b40aada8c91fa62e6e1_b.jpg

这样写优点:

v2-d738f4055c47f8f5ec7fea2cf742e0d0_b.jpg

5.构造函数

v2-159b599b7b5e88e0d1b5ee8afc9a3d32_b.jpg

v2-813bdd54e2674730c96e1496e4d3b31c_b.png

调用某个构造函数的同时调用其他构造函数 //:this()

v2-473dc9e20d8b1560576899ade706422b_b.jpg

构造函数特点:

v2-e1405b23cac00efa935ff9399f76bb54_b.jpg

6. this关键字

v2-2d1645fd954c5c4731c091b5ec98ccd3_b.jpg

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值