C#中有哪些常用的数据类型

如题 还有 这么数据类型的命名规则 以及如何转换

类型可分为:值类型,引用类型
值类型:直接存放真正的数据,值类型都有固定的长度,值类型的变量都保存在
堆栈(stack)上。作为值类型的变量,每个都有自己的数据,因此对一个变量的操作不会影响其他变量。

引用类型:存储读数据的内存地址的引用,位于受管制的堆(Heap)上作为引用类型的变量可以引
用同一对象;因此对一个变量的操作会影响另一个变量所引用的同一对象。

值类型可分为3大类:
基本型:
整型
int
如:int i=123; //也可以写为:System.Int32 i=123;
long
如: long myLong=123; //int型隐式转换为long型
char
如:char mychar='A'
sbyte byte short ushort uint ulong
注意:(1) 书写一个常数时(如:23),默认为整型,若要表示非整型,可以用显式转换:
如:sbyte k=1;
int i=2;
k=(sbyte)i; //显式转换
i=k; //隐式转换
(2) 不同整型转换原则:小范围类型可以隐式转换为大范围类型,大范围类型转换
为小范围类型时要使用显式转换。

浮点型
float类型:32位浮点数,取值范围在
double类型:64位浮点数,取值范围在

布尔型 bool
true false

结构型
struct
如 public struct Point
{
int x;
int y;
string s;
}
结构和类的区别:
结构是一个值类型(在栈上),而类是一个引用
类型(在堆上)。

枚举型

enum类型
常用形式有:
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};
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();
}
}

引用类型

引用类型包括:类、接口、数组、委托 等。

string类型

string myString = "some text";
char chFirst = myString[2]; //结果为m
当比较两个字符串是否相等时,可以直接使用“==”比较操作符。
当比较两个字符串大小时,可以使用string. Compare方法,其返
回值有-1,0,1三种可能。
常用格式举例:
(1) int i=12345;
this.textBox1.Text=i.ToString();
(6) DateTime dt =new DateTime(2003,5,25);
this.textBox1.Text=dt.ToString("yy.M.d");
//结果 03.5.25
this.textBox2.Text=dt.ToString(“yyyy年M月”);
//结果 2003年5月
(7) int i=123;
double j=123.45;
string s=string.Format("i:{0,-7},j:{1,7}",i,j);
//-7表示左对齐,占7位
this.textBox1.Text=s ;
//结果i:123 ,j: 123.45

//结果 12345(this指当前对象,或叫当前类的实例)
this.textBox2.Text=i.ToString("d8");
//结果 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);
this.textBox1.Text=s1 ;
//结果 the value is 123
this.textBox2.Text=s2;
//结果 the value is 123.450
(3) double i=12345.6789
this.textBox1.Text=i.ToString("f2");//结果 12345.68
(4)double i=12345.6789;
this.textBox1.Text=i.ToString("n"); //结果 12,345.68
this.textBox2.Text=i.ToString(“n4”); //结果 12,345.6789
(5)double i=0.126;
string s=string.Format("the value is {0:p}",i);
this.textBox1.Text=i.ToString("p"); //结果 12.6%
this.textBox2.Text=s; //结果 the value is 12.6%

数组
特点:所有的元素类型都相同。
//一维数组

string[] arr={"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[,] 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"};

类型之间的转换
位数少的转换为位数多的,可以使用隐式转换;
位数多的转换为位数少的,要使用显式转换。

装箱和拆箱
int i=123; //数值类型
object box=i; //装箱操作 在堆上建一个临时对象,把值付给临时对象,从而拥有对象的方法等
int j=(int)box; //拆箱操作 在栈上申请字节位,把对象的值赋给这个地址
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-03-12
C#中多数的数据类型是从C 和 C++语言中来的。 请看下表:

数据类型
描述
举例

object
所有其它类型的基类
object obj = null;

string
字符串类型-一系列的Unicode 字符
string str = "Mahesh";

sbyte
8-bit 有符号整型
sbyte val = 12;

short
16-bit有符号整型
short val = 12;

int
32-bit有符号整型
int val = 12;

long
64-bit有符号整型
long val1 = 12;
long val2 = 34L;

bool
布尔型; 可取 true 或者 false俩个值
bool val1 = true;
bool val2 = false;

char
字符型; Unicode字符
char val = 'h';

byte
8-bit无符号整型
byte val1 = 12;
byte val2 = 34U;

ushort
16-bit 无符号整型
ushort val1 = 12;
ushort val2 = 34U;

uint
32-bit 无符号整型
uint val1 = 12;
uint val2 = 34U;

ulong
64-bit 无符号整型
ulong val1 = 12;
ulong val2 = 34U;
ulong val3 = 56L;
ulong val4 = 78UL;

float
单精度浮点数型
float val = 1.23F;

double
双精度浮点数型
double val1 = 1.23;
double val2 = 4.56D;

decimal
高精度型128位数据类型(用于货币等)
decimal val = 1.23M;

◆C#中的类型

C# 支持两种类型: 数值类型和参考类型

类型
描述

数值类型
包括简单的数据类型,不如说 int, char, bool, enums

参考类型
包括对象,类,接口,代理和数组类型

数值类型- 数值类型对象变量中直接包含了真实的数据。对数值类型,每个变量都有它们自己的数据的拷贝,并且不可能通过操作一个变量而去影响另外一个变量。例如:

int i = 10;

参考类型-参考类型变量存储了真实数据的引用。对参考类型来说,让两个变量指向同一个对象是可能实现的,因此,可以通过操作一个变量而去影响另外一个变量。例如:

MyClass cls1 = new MyClass();

◆数据类型转换

C# 支持两种类型的转换,隐式转换和显式转换。

⑴隐式转换是直接转换 。例如:

int iVal = 34;
long lVal = intValue;

⑵显式转换包含有强制类型转换。 例如:

long lVal = 123456;
int iVal = (int) lVal;

如果需要的话我这里有份C#的中文PDF电子书,发消息留个邮箱我发给你。

参考资料:http://study.qqcf.com/web/219/23703.htm

本回答被提问者采纳
第2个回答  2007-12-28
一般转到字符串类型的 是: **.ToString();
字符串类型转到其他的是:Converst.**;
相似回答