Mono 基本概念


** 4 **


C #基本概念

本章内容

ü 基本数据类型

ü 操作符

ü 流程控制

ü 数组

ü 结构、枚举类型和类

ü 委托和事件

本章内容不是全面介绍 C# 语言,而是对 C# 语言进行一个总结。假定读者已经对 C# 语言已经了解,详细的 C# 资料可参看微软的 .NET SDK 的文档。

请读者原谅我加上这一章,之所以这样是因为我想对 C# 语言的一些功能点做一些总结,尽量以图表的方式展示这些功能点。我也买过很多书, java 和 .net 的,很多书的前 4 、 5 章的内容基本相同,都是介绍开发语言的。我们读者哪有那么多银子区买这些重复的东西呢?

** 4.1 基本数据类型 **

C #定义了十三种简单类型,下面的表是对这些类型做了比较。

C# 关键字

|

框架类型

|

占用字节 ( 位 )

|

范围

---|---|---|---

sbyte

|

System . SByte

|

8

|

-128 到 127

byte

|

System . Byte

|

8

|

0 到 255

short

|

System . Int16

|

16

|

-32768 到 32767

ushort

|

System . UInt16

|

16

|

0 到 65535

int

|

System . Int32

|

32

|

-2147483648 到 2147483647

uint

|

System . UInt32

|

32

|

0 到 4294967295

long

|

System . Int64

|

64

|

-9223372036854775808 到 9223372036854775807

ulong

|

System . UInt64

|

64

|

0 到 18446744073709551615

char

|

System . Char

|

32

|

所有 Uniccode 字符

float

|

System . Single

|

32

|

约 ( ±)1.5 × 10 -45 到 7.9 × 3.4 × 10 38

double

|

System . Double

|

64

|

约 ( ±)5.0 × 10 -324 到 7.9 × 10 × 10 28

decimal

|

System . Decimal

|

128

|

8

bool

|

System . Boolean

|

1

|

true 或者 false

我们通过一个例子来查看各个类型的最大最小值。

Console.WriteLine("SByte:MaxValue=" + SByte.MaxValue + ",MinValue=" + SByte.MinValue);

Console.WriteLine("Byte:MaxValue=" + Byte.MaxValue + ",MinValue=" + Byte.MinValue);

Console.WriteLine("Int16:MaxValue=" + Int16.MaxValue + ",MinValue=" + Int16.MinValue);

Console.WriteLine("UInt16:MaxValue=" + UInt16.MaxValue + ",MinValue=" + UInt16.MinValue);

Console.WriteLine("Int32:MaxValue=" + Int32.MaxValue + ",MinValue=" + Int32.MinValue);

Console.WriteLine("UInt32:MaxValue=" + UInt32.MaxValue + ",MinValue=" + UInt32.MinValue);

Console.WriteLine("Int64:MaxValue=" + Int64.MaxValue + ",MinValue=" + Int64.MinValue);

Console.WriteLine("UInt64:MaxValue=" + UInt64.MaxValue + ",MinValue=" + UInt64.MinValue);

Console.WriteLine("Char:MaxValue=" + Char.MaxValue + ",MinValue=" + Char.MinValue);

Console.WriteLine("Char:MaxValue=" + Char.MaxValue + ",MinValue=" + Char.MinValue;

Console.WriteLine("Single:MaxValue=" + Single.MaxValue + ",MinValue=" + Single.MinValue);

Console.WriteLine("Double:MaxValue=" + Double.MaxValue + ",MinValue=" + Double.MinValue);

Console.WriteLine("Decimal:MaxValue=" + Decimal.MaxValue + ",MinValue=" + Decimal.MinValue);

Console.WriteLine("Boolean:TruString=" + Boolean.TrueString + ",FalseString=" + Boolean.FalseString);

运行此程序,显示结果如下:

据 Mono 文档介绍 ,Char 类型的最大值为 65535, 最小值为 0 。不过这里显示是乱码。这是因为这两个值的类型都是 char 。我们可以通过下面的代码片段将其转换成 double, 终端中将显示最大值 65535 和最小值 0 :

double maxValue = Convert.ToInt32(Char.MaxValue);

double maxValue = Convert.ToInt32(Char.MinValue);

Consloe.WriteLine(“Char:MaxValue=” +maxValue + “,MinValue=” + minValue);

这 13 种类型都是值类型,值类型和引用类型的区别在下面介绍。这里如何区分值类型和引用类型呢?

区分值类型和引用类型是相当重要的,尤其在对方法的参数进行判断的时候很容易出错。值类型都继承于 System.ValueType 和它的子类,如结构类型和枚举类型。

考虑下面的一个例子。

using System;

public class ValueandRef

{

public class Person

{

public string name;

public int age;

public Person()

{

}

&nbs

Published At
Categories with Web编程
Tagged with
comments powered by Disqus