C#数据类型略讲

C#类型所含的数据类型

与其他大部分语言类似,C#拥有int、bool等等值类型数据以及用户可以自定的struct(结构体)类型,

他们都是继承于System.ValueType这个类的,而System.ValueType又继承于System.Object这个类。

Int整形

int在C#中其实做了一些处理,他并不是直接代表其他语言里的int,

在C#中,int的真实名称其实为System.Int32,

类似的,bool的真实名称其实为System.Boolean等等。

需要注意的是,在C#当中,int的默认构造就是0

所以直接调用int的默认构造函数与赋值0效果是一样的。

using System;
namespace u3dTest1
{ 
    class Program
    {
        static void Main(string[] args)
        {
            int intValue = 0;
            int intValue2 = new int();
            //上面两种写法其实是等价的,在c#当中int的默认构造就是0
            //第二句话就是调用了int的默认构造函数,也就等于第一句话
            //vs的快捷键f12就可以跳到定义区,里面有详细构造,其他的类型也一样
        }
    }
}

intValue.CompareTo

intValue.Equals

intValue.GetHashCode...

这些都是int一些可视的接口与方法

Struct结构体

strcut的目的就是用来打包封装一个比较小的数据集,

在strcut里也可以像class一样定义方法、事件等等,它基本可以做到class能做到的大部分事。

using System;
namespace u3dTest1
{ 
    class Program
    {
        static void Main(string[] args)
        {
            Person person = new Person();//调用下面定义的结构体
            person.age = 10;
            Console.WriteLine(person.age);
            /*需要注意的是,虽然age在结构体里定义的是一个int类型,但通过WriteLine
             打印出来的将被转换成string类型输出在控制台上*/
            Console.ReadLine();//用来暂停,显示结果
        }
        
        struct Person
        {
            public int age;
            public string name;
            public string fname;
            public string lastName;
        }
    }
}

在定义成员属性时也要用到访问权限修饰符,跟java大同小异

public        公开的可视的

private       私有的,只有同一个类里可以访问

internal      在同一个包内(同一个命名空间内),可以访问

protected   继承于它的类也可以访问它

  同一个类 同一个包 同一个包的子类 不同包的非子类
public
protected
internal
private

enum枚举类型

枚举类型的主要功能就是限定变量的可能性,

比如现在枚举了days天,那么它只有可能是周一到周日,不可能是“一月”

枚举默认的基础类型是int,且默认从0开始,类似于下标

using System;
namespace u3dTest1
{ 
    //如果像现在枚举的是string类型,在输出时强转成int,就会输出对应的下标
    enum Days { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday };
    //当然,你也可以在定义的时候确定它的基础类型,比如byte字节型和short短整形等等所有非char的类型
    enum Months : byte { Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec };
    class Program
    {
        static void Main(string[] args)
        {
            //调用枚举类型可以用两种方式
            /*1.*/
            Console.WriteLine(Days.Monday);//直接调用之前定义的枚举类型Days
            /*2.*/
            var day = Days.Thursday;/*var的作用就是无论你现在声明或者赋予这个变量什么类型的值都可以,都视为可行,
                                    只有到需要真正确定它是什么类型时才会去自动设定类型*/
            Console.WriteLine(day);//先把Days.Thursday的值赋予变量day,再打印day

            Console.WriteLine((int)Days.Monday);//强转int
            Console.ReadLine();//用来暂停,显示结果
        }
   }
}
发布了7 篇原创文章 · 获赞 4 · 访问量 1065

猜你喜欢

转载自blog.csdn.net/weixin_43657555/article/details/103271634