writeline输出数值变量32位编译器:
char:1个字节
char*(指针变量):4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)
int:4个字节   
short:2个字节
float:4个字节
double:8个字节
long:4个字节
long long:8个字节
short int: 2个字节
unsigned long;4个字节
unsigned char:1字节
unsigned short:2字节
unsigned int : 4个字节
_int8<=>ANSI的char:1个字节
__int16<=>ANSI的short:2个字节
__int32<=>ANSI的int:4个字节
__int64:8个字节
64位编译器:
char :1个字节
char*(即指针变量): 8个字节
short int : 2个字节
int:  4个字节
unsigned int : 4个字节
float:  4个字节
double:  8个字节
long:  8个字节
long long:  8个字节
unsigned long:  8个字节
  1. 数据类型和别名
  bool -> System.Boolean (布尔型,其值为 true 或者 false)
  char -> System.Char (字符型,占有两个字节,表示 1 个 Unicode 字符)
  byte -> System.Byte (字节型,占 1 字节,表示 8 位正整数,范围 0 ~ 255)
  sbyte -> System.SByte (带符号字节型,占 1 字节,表示 8 位整数,范围 -128 ~ 127)
  ushort -> System.UInt16 (无符号短整型,占 2 字节,表示 16 位正整数,范围 0 ~ 65,535)
  uint -> System.UInt32 (无符号整型,占 4 字节,表示 32 位正整数,范围 0 ~ 4,294,967,295)
  ulong -> System.UInt64 (无符号长整型,占 8 字节,表示 64 位正整数,范围 0 ~ 大约 10 的 20 次方)
  short -> System.Int16 (短整型,占 2 字节,表示 16 位整数,范围 -32,768 ~ 32,767)
  int -> System.Int32 (整型,占 4 字节,表示 32 位整数,范围 -2,147,483,648 到 2,147,483,647)
  long -> System.Int64 (长整型,占 8 字节,表示 64 位整数,范围大约 -(10 的 19) 次方 到 10 的 19 次方)
  float -> System.Single (单精度浮点型,占 4 个字节)
  double -> System.Double (双精度浮点型,占 8 个字节)
  2. 字符串转字符数组
  string str = "mytest";
  char[] chars = str.ToCharArray();
字符数组转换成字符串
  char[] tcs = {'t', 'e', 's', 't', ' ', 'm', 'e'};
  string tstr = new String(tcs);
获取字符数组中的某个字符
  char ch = tstr[3];
  3. 格式化日期型数据 
  d 月中的某一天 一位数的日期没有前导零
  dd 月中的某一天 一位数的日期有一个前导零
  ddd 周中某天的缩写名称 在 AbbreviatedDayNames 中定义
  dddd 周中某天的完整名称 在 DayNames 中定义
  M 月份数字 一位数的月份没有前导零
  MM 月份数字 一位数的月份有一个前导零
  MMM 月份的缩写名称 在
AbbreviatedMonthNames 中定义
  MMMM 月份的完整名称 在 MonthNames 中定义
  y 不包含纪元的年份 如果不包含纪元的年份小于 10,则显示不具有前导零的年份
  yy 不包含纪元的年份 如果不包含纪元的年份小于 10,则显示具有前导零的年份
  yyyy 包括纪元的四位数的年份
  h 12 小时制的小时 一位数的小时数没有前导零
  hh 12 小时制的小时 一位数的小时数有前导零
  H 24 小时制的小时 一位数的小时数没有前导零
  HH 24 小时制的小时 一位数的小时数有前导零
  m 分钟 一位数的分钟数没有前导零
  mm 分钟 一位数的分钟数有一个前导零
  s 秒 一位数的秒数没有前导零
  ss 秒 一位数的秒数有一个前导零
输出的文本信息中包含格式字符,只需要使用单引号或者双引号将文本信息括起来:
  format = "\"year\": yyyy, \'month\': MM, \'day\': dd";
now.ToString(format);
  结果:
  year: 2011, month: 05, day: 21
4.C#数据类型 
2.2.1
①int型: 32位有符号整数
如 int i=123; //也可以写为:System.Int32 i=123;
int j;
注意:如果定义时不进行初始化,则使用时也必须先赋
值,因为C#不允许使用未初始化的变量。
②long型:64位有符号整数
如 long myLong=123L;或者
long myLong=123;  //int型隐式转换为long型
2.2.2 浮点型
float类型:32位浮点数,取值范围在1.5×10-45~ 3.4×1038之间,精度为7位数。
如 float myFloat=2.3F;
double类型:64位浮点数,取值范围在5.0×10-324 ~ 1.7×10308之间,精度为15~16 位数。
如 double myDouble=2.7E+23; //2.7×1023
2.2.3 小数型
128位,它所表示的范围从大约1.0 × 10-28 到7.9 × 1028,具有28至29位有效数字。特别适用于金融、货币等领域。
如 decimal myMoney=300.5m;
decimal y=9999999999999999999999999m;
decimal x=123.123456789123456789m;
2.2.4 布尔型
只有两个值true和false
如: bool myBool=false;
2.2.5 struct类型:结构类型
如 public struct Point
{
int x;
int y;
string s;
}
结构和类的区别:
结构是一个值类型(在栈上),而类是一个引用类型(在堆上)。使用结构的主要思想是用于创建小型的对象。
2.2.6 enum类型:枚举型
除char外的所有整型均可作为枚举型,如果不指明,则默认为整型。常用形式有:
enum days {Sun,Mon,Tue,Wed,Thu,Fri, Sat};
//第一个成员值默认为0,第二个为1,……
enum days {Mon=1,Tue,Wed,Thu,Fri, Sat, Sun };
//第一个成员值从1开始
enum days {mon=1,wed=3,sun,thu=8};
// mon:1,wed:3,sun:4,thu:8
注意:下列写法是错误的:
enum num:byte{x1=255,x2};
因为:x1=255,x2应该是256,而b
yte类型范围是0-255但是可以这样写: enum num:byte{x1=254,x2};
enum类型的使用示例:
class Test
{
enum days {Sun,Mon,Tue,Wed,Thu,Fri,Sat};
static void Main()
{
Console.WriteLine(days.Wed);
days myday=days.Fri;
Console.WriteLine(myday);
Console.Read();
}
}
2.3 引用类型
引用类型存储对数据的内存地址的引用,位于受管制的堆上。
堆用于存储可变长度的数据,比如字符串类型。作为引用类型的变量可以引用同一对象;因此对一个变量的操作会影响另一个变量所引用的同一对象。
引用类型包括:类、接口、数组、委托 等。
2.3.1 string类型
表示一系列不可变的字符。
例如:
string myString = "some text";
myString += " and a bit more";
第二行的myString实际上返回的是一个新String实例。如果需要真正修改类似字符串的对象的内容,可以使System.Text.StringBuilder 类。
如果要得到string中的某个字符,可以使用类似下面的办法:
char chFirst = myString[2];  //结果为m
当比较两个字符串是否相等时,可以直接使用“==”比较操作符。
当比较两个字符串大小时,可以使用string. Compare方法,其返
回值有-1,0,1三种可能。
可以使用 Format 方法将字符串表示为规定格式。规定格式的一般形式为:
{N [, M][: formatCode]}
其中:
N 是从零开始的整数,表示第几个参数。
M 是一个可选整数,表示最小宽度。若该参数的长度小于M  ,就用空格填充。
如果 M 为负,则左对齐;
如果 M 为正,则右对齐。
如果未指定 M,则默认为零。
formatCode 是可选的格式化代码字符串。(详细内容请搜索“格式化字符串”查看)
必须用“{”和“}”将格式与其他字符分开。如果恰好在格式中也要使用大括号,可以用连续的两个大括号表示一个大括号,即: “{{”或者“}}”。
常用格式举例:
(1)  int i=12345;
//结果 12345(this指当前对象,或叫当前类的实例)
//结果 00012345
(2) int i=123;
double j=123.45;
string s1=string.Format("the value is {0,7:d}",i);
string s2=string.Format("the value is {0,7:f3}",j);
//结果 the value is    123
//结果 the value is 123.450
(3)double i=12345.6789;
/
/结果 12345.678900
(4)double i=12345.6789;
(5)double i=0.126;
string s=string.Format("the value is {0:p}"
,i);
(6) DateTime dt =new DateTime(2003,5,25);
/
/结果 03.5.25
//结果 2003年5月
(7) int i=123;
double j=123.45;
string s=string.Format("i:{0,-7},j:{1,7}",i,j);
//-7表示左对齐,占7位
//结果i:123    ,j: 123.45
2.3.2 数组
特点:所有的元素类型都相同。
常用形式举例:
//一维数组
string[] arr = { "C", "C++", "C#" };
string[] myStrings = new string[3];
int[] intArr1=new int[4]{0,1,2,3};
int[] intArr2 ={5,6,7};
int nVar = 5;
int[] arrToo = new int[nVar];
//二维数组
int[,] arr = {{0,1}, {2,3}, {4,5}};
int[,] myArr = new int[5,3];
/
/锯齿型数组
string[][] stra=new string[3][];
stra[0]=new string[2]{"a11","a12"};
stra[1]=new string[3]{"b11","b12","b13"};
stra[2]=new string[5]{"a","e","i","o","u"};
//输出锯齿型数组的元素
for(int i=0;i<stra.Length;i++)
{
for(int j=0;j<stra[i].Length;j++)
Console.Write("  stra[{0}][{1}]={2}",i,j,stra[i][j]);
Console.WriteLine();
2.4 类型之间的转换
同种类型之间的转换
位数少的转换为位数多的,可以使用隐式转换;
位数多的转换为位数少的,要使用显式转换。
不同类型之间的转换
可以使用Convert类。
Parse方法
Convert.静态方法名(字符串类型数据)
1. Convert.ToInt32方法
2. Convert.ToSingle方法
3. Convert.ToChar方法
4. Convert.ToBoolean方法
5. Convert.ToString
2.4 类型之间的转换
Parse方法可以将特定格式的字符串转换为数值。Parse方法的使用格式为:
数值类型名称.Parse(字符串型表达式)
例如:int x=int.Parse("123");
ToString方法
ToString方法可将其他数据类型的变量值转换为字符串类型。ToString方法的使用格式为:
变量名称.ToString( )
例如:int x=123;    string s=x.ToString( ); 
using System;
class Test
{
public static void Main()
{
int i=10;
long j=20;
double k=30D;
j=i;  //隐式转换
k=j;
Console.WriteLine("{0},{1},{2}",i,j,k);
k=30.6D;
j=(long)k; //显式转换
i=(int)j;
Console.WriteLine("{0},{1},{2}",i,j,k);
Console.Read();
}
}    运行结果:10,10,10
30,30,30.6
2.5 装箱和拆箱
C#中使用装箱和拆箱功能可以把数值
类型看作对象使用。所有的数值类型,包
括结构类型和内建类型,如int,都可以
与object类型实现双向转换。
2.5.1 装箱
装箱是数值类型隐式转换为object类型或者任何该数
值类型实现了的接口类型。装箱一个数值会分配一个对
象实例,并把该数值拷贝到新对象中。
例如:
int i=123;
object o=i;  //装箱
这条装箱语句执行的结果是在堆栈(stack)中创建
了一个对象o,该对象引用了堆(heap)上int类型的数值,
而该数值是赋给变量i的数值的拷贝。i和o两个变量的区
别如图2.1所示。
2.5.2 拆箱
拆箱是显式地把object类型转换成数值类型,或者
把数值类型实现了的接口类型转换成该数值类型。
拆箱操作包括以下两个步骤:
检查对象实例,确认它是给定数值类型的包装数值。
把实例中的数值拷贝到数值类型的变量中。
下面的语句演示了装箱和拆箱操作:
int i=123;  //数值类型
object box=i;  //装箱操作
int j=(int)box;  //拆箱操作
2.6 操作数与优先级
C#有三大类操作数:
一元操作数:有一个运算符组成,如i++。
二元操作数:有两个运算符组成,如x+y。
三元操作数:有三个运算符组成,
如:条件成立时?结果:不成立时结果 

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。