葡京娱乐总站平台5、C#基础 – C#的值类型

眼前,2015及的毕业生大部分早就开了毕业典礼,职场小鲜肉们看在学弟学妹临别的赠言,听在《祝你顺利》的结业歌曲,心中便有万般不放弃也得踏上新的征程。官方统计数字749万之毕业生人数表明今年以是一个刷新吉尼斯纪录的秋,近几年相似每至六月份之时节以新闻媒体上且能看到“最麻烦就业季”、“毕业生薪资达到2xxx要么3xxx”、“90后新人如何保管”等等此类新闻标题充斥,甚至最地还见面有研究生毕业自杀的信跃入眼帘,让丁不由得感慨这同时是如出一辙集人间悲喜剧的重演。

1、C#的值类型

酒啊喝了,歌吗唱了,道别的言辞也说了,背及行囊该出发了。大多数之毕业生对目的地无外乎两栽选择取向,一栽是暨曾向往的“北上广”为代表的及时类似非常城市挑战同把,说不定你虽是坏会站在写字楼大落地窗前喝咖啡的英才阶层;另一样类似即是回去家乡或者附近的二三线中小城市就业之子弟,我就聊称“小地方”。引出这个话题无外乎是盖时以此话题最火了,我吗来凑凑热闹。

生几乎独特性:

事先知乎上无限火之一个问题是“为什么现在无数小伙愿意交北上广深于并,即使过得深艰难,远离亲人,仍然义无反顾?”几乎引爆了不少飘飘在老城市青年的答题热情,一开始点赞最多的一个是王远成的回应,之后自然是各路神仙都来回顾一下加油之常青。王远成主要就是描述了一晃和谐一个西安非法大专差点没有毕业的应届生于异常上海孤身一人的情形下,以己之大力赢得了于好的发展,以此表明大城市又看重私有力量,竞争环境更是公正。当然人家自己便是得借助收房租舒舒服服过日子的人家情况不在议论的列。

  • 存储于栈里 
  • 根据值类型的变量直接包含值(值类型存储实际值)。
    将一个值类型变量赋给另外一个值类型变量时,将复制包含的价值。
    这和援类型变量的赋值不同,引用类型变量的赋值只复制对目标的援,而休复制对象自我。
  • 具的值类型均隐式派生自 System.ValueType。
  • 以及援类型不同,不可知于值类型派生出新的色。
    但与援类型相同的凡,结构为得以兑现接口。
  • 暨援类型不同,值类型无法包含 null 值。 但是,可以啊 null 的型
    功能允许值类型分配受 null。
  • 各个种值类型均发生一个隐式的默认构造函数来初始化该项目的默认值。

自家给众多网友汇集下殊城市的优势:就业条件进一步公平,就业机会多,选择面对普遍,各种消费娱乐选择多,其他的零碎如开放自由什么的就是无取了。相应的不行城市之优势就是是多少地方的软肋,小地方得叫您的是:相对舒适的生活,回家方便照顾家长,房车更便于解决。两种植看法都来数量大幅度之支持者,就如咸豆腐脑和甜豆腐脑大战一样,仿佛谁吧说服不了谁。刚毕业的有点鲜肉更是无所适从,该听师哥师姐的忠告,还是老人亲属的配置。

 

本人怀念对小鲜肉们说的不是啊就你的心弦走这种无带勺的鸡汤,而是你变自己蒙蔽自己之眸子,想吓了即去好城市,没想吓,就先回小地方;等你啊天社会更一段时间后考虑好了,想更归来北上广也未尝不可。

值类型分为两像样:
struct( 结构
)、 enum(枚举 )

森丁雾里看花地渡过大学时光,压根就是无知道好要是的是啊,或许是观影视剧被白领高大上的生,或许是为身边人潜移默化,就全仗在团结年轻的工本平等湾脑往北上广冲,咱能不能够忽悠着点呢?年轻确实有试错的资金,你可无限制而若莫该浪费青春。你失去那吧不是失去游玩之,想感受好城市之存活动出单增长的假日去体会就吓了,如果是在相同卖而同样客基础之办事负跳槽,完全没有目标感,在绝该积累之春秋也一味留下了时光的痕迹,那是得不偿失的。还无设一方始先行回里找一卖或接受爱人安排转业同样客安稳的劳作,这里没互联网、物联网、纳米科技这类似非传统的就业机会,可是大部分人数吧未是以这些行业就业的。

struct( 结构 )分为以下几好像:

回到小地方你而担心被环境消磨掉你的斗争激情,只能证实您当就是不适合需要在雅城市。小地方要久了,工作一段时间后找到好越爱的,你再次出发,大城市必然会收你。可是自打北上广那种都市生活中摆脱出来回到小地方,你也会发各种非正,首先多行业的涉在稍微地方是从未活根基之,你老不便找到适合自己的做事;其次在方式差异,你在挺城市可玩cosplay、吃各国美食、欣赏各种文化展,都好找到志同道合的食指;在聊地方特别,加上亲朋好友长辈的唠叨会被刚刚回的您十分无适于。从很城市回归小地方你见面时有发生各种失落,小地方来老城市可会发生各种特殊的体会。

  • Numeric(数值)类型

    • 整型

    • 浮点型

    • decimal

  • bool

  • 用户定义的组织。

于是老城市,想吓了而再次失去;小地方,没想吓地先待着。

下表列有了 C# 中放到类型受到可用的值类型:

类型 描述 范围 默认值
bool 布尔值 True 或 False False
byte 8 位无符号整数 0 到 255 0
char 16 位 Unicode 字符 U +0000 到 U +ffff ‘\0’
decimal 128 位精确的十进制值,28-29 有效位数 (-7.9 x 1028 到 7.9 x 1028) / 100 到 28 0.0M
double 64 位双精度浮点型 (+/-)5.0 x 10-324 到 (+/-)1.7 x 10308 0.0D
float 32 位单精度浮点型 -3.4 x 1038 到 + 3.4 x 1038 0.0F
int 32 位有符号整数类型 -2,147,483,648 到 2,147,483,647 0
long 64 位有符号整数类型 -923,372,036,854,775,808 到 9,223,372,036,854,775,807 0L
sbyte 8 位有符号整数类型 -128 到 127 0
short 16 位有符号整数类型 -32,768 到 32,767 0
uint 32 位无符号整数类型 0 到 4,294,967,295 0
ulong 64 位无符号整数类型 0 到 18,446,744,073,709,551,615 0
ushort 16 位无符号整数类型 0 到 65,535 0

实质上是概括类型,所有的简短类型(C# 语言的有)均为 .NET
Framework 系统项目的别名。 例如,int 是 System.Int32
的号。可使文字初始化简单类型。 例如,“A”是 char 类型的仿,而 2001
是 int
类型的亲笔。如需要取得一个品种或者一个变量在一定平台上之纯粹尺寸,可以利用
sizeof 方法。表达式 sizeof(type)
产生为字节为单位存储对象或项目的囤积尺寸。下面举例获取其它机器及 int
类型的仓储尺寸:

 1 namespace DataTypeApplication
 2 {
 3    class Program
 4    {
 5       static void Main(string[] args)
 6       {
 7          Console.WriteLine("Size of int: {0}", sizeof(int));
 8          Console.ReadLine();
 9       }
10    }
11 }

当上面的代码被编译和实施时,它见面有下列结果:

Size of int: 4

 

 

2、 C# 的 struct

struct(结构)通常作为一小组相关变量的容器,在 C#
中她使一个纯粹变量可以储存各种数码列的连带数据。struct
关键字用于创造结构体,可以按如下的法宣示 Person结构:

1 struct Person
2 {
3    public string name;
4    public int age;
5    public string sex;
6 };  

下的次演示了组织的用法:

using System;

namespace MyStruct
{
    struct Person
    {
        public string name;
        public int age;
        public string sex;
    }

    class Program
    {
        static void Main(string[] args)
        {
            Person person1;
            person1.name = "张三";
            person1.age = 18;
            person1.sex = "男";

            Person person2;
            person2.name = "李四";
            person2.age = 20;
            person2.sex = "男";

            //输出 person1 的信息
            Console.WriteLine("person1 姓名:{0}", person1.name);
            Console.WriteLine("person1 性别:{0}", person1.sex);
            Console.WriteLine("person1 年龄:{0}", person1.age);

            //输出 person2 的信息
            Console.WriteLine("person2 姓名:{0}", person2.name);
            Console.WriteLine("person2 性别:{0}", person2.sex);
            Console.WriteLine("person2 年龄:{0}", person2.age);

            Console.Read();
        }
    }
}

 

当上面的代码被编译和实行时,它见面发下列结果:

person1 姓名:张三
person1 性别:男
person1 年龄:18
person2 姓名:李四
person3 性别:男
person4 年龄:20

 

布局以及类似有许多相同的语法,但组织比类受到的限更多:

  • 布局可含蓄艺术、字段、索引、属性、运算符方法和事件。
  • 布局不可知声称默认构造函数(没有参数的构造函数)或终结器。
  • 组织得以声明具有参数的构造函数。
  • 一个构造无法继续自另一个组织还是看似,并且它们不可知也接近的基类。
  • 组织可实现一个要么多独接口。
  • 布局成员不能够指定为 abstract、virtual 或 protected。
  • 以及类似不同,无需用 new 运算符即可对结构进行实例化。
  • 而不使用 New
    操作符,只有在颇具的字段都给初始化之后,字段才给赋值,对象才受采用。

多领取一下:可拿组织类型强制转换为接口类型,这将促成“装箱”操作,以以组织包装在托管堆上之援类型对象内。
当将值类型传递至接受 Object
作为输入参数的办法时,将发出装箱操作。详细的会于后头装箱和收回装箱说明。

 

C# 的 enum 

枚举类型(也称枚举)为定义一组可与给变量的命名整数常量提供了一样栽中之措施。
例如,假而您必须定义一个变量,该变量的价表示一致健全被的如出一辙天。
该变量只能存储七只来意义的价。
若要定义这些价值,可以采取枚举类型。枚举类型是运 enum 关键字声明的:

enum Days { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday };
enum Months : byte { Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec }; 

 

默认情况下,枚举中每个元素的底蕴项目是 int。
可以运用冒号指定其他一样栽整数值类型,如前的言传身教所示。准许使用的种有
byte、sbyte、short、ushort、int、uint、long 或 ulong。

 

平常情况下,最好是以命名空间内直定义枚举,以便该命名空间受到的所有类都能平等好地拜会它。
但是,还得拿枚举嵌套在类似还是组织被。
默认情况下,第一独枚举数的价值吗 0,后面每个枚举数的价依次递增 1。
例如,下面的枚举,Sat 是 0,Sun 是 1,Mon 是 2 等。

enum Days {Sat, Sun, Mon, Tue, Wed, Thu, Fri};

 

 

要下面的演示所出示枚举数可用初始值来再写默认值。

enum Days {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};

 在是枚举中,强制因素序列从 1 而不是 0 开始。 但是,一般建议这样以。注,枚举数的号中无可知包含空白。

 

如若变量
meetingDay 的色为 Days,则不得不将 Days
定义之某个值赋给它(无需显式强制转换)。 如果会日期变动,可以将 Days
中的新值赋给 meetingDay:

Days meetingDay = Days.Monday;
//...
meetingDay = Days.Friday;

 可以拿轻易整数值赋给 meetingDay。 例如,代码行 meetingDay = (Days)
42 不见面发错误。 但也非应如此做,因为默认约定的凡枚举变量只容纳枚举定义之值之一。 将任意值赋给枚举类型的变量很有或会见造成错误。
 
下的实例演示了枚举变量的用法:

using System;

namespace MyEnum
{
    class Program
    {
        enum Days { Sun, Mon, tue, Wed, thu, Fri, Sat };
        static void Main(string[] args)
        {
            int WeekdayStart = (int)Days.Mon;
            int WeekdayEnd = (int)Days.Fri;
            Console.WriteLine("Monday: {0}", WeekdayStart);
            Console.WriteLine("Friday: {0}", WeekdayEnd);

            Console.Read();
        }
    }
}

 

当上面的代码被编译和实践时,它见面发出下列结果:

Monday: 1
Friday: 5

花色源码下载:https://pan.baidu.com/s/1miOPAdU


 

C#基础,目录

上一篇:4、C#基础 – C# 的
常见概念简述

下一篇: