C#中的数据类型
来源:互联网 发布:大数据行业前景 编辑:程序博客网 时间:2024/04/28 13:50
C# 类型体系包含下列几种类别:
值类型的变量存储数据,而引用类型的变量存储对实际数据的引用。引用类型也称为对象。指针类型仅可用于 unsafe 模式。
通过装箱和取消装箱,可以将值类型转换为引用类型,然后再转换回值类型。除了装箱值类型外,无法将引用类型转换为值类型。
值类型也可以为 null,这意味着它们能存储其他非值状态。
值类型主要由两类组成:
结构分为以下几类:
基于值类型的变量直接包含值。将一个值类型变量赋给另一个值类型变量时,将复制包含的值。这与引用类型变量的赋值不同,引用类型变量的赋值只复制对对象的引用,而不复制对象本身。
所有的值类型均隐式派生自 System.ValueType。
与引用类型不同,可以从值类型派生出新的类型。但与引用类型相同的是,结构也可以实现接口。
与引用类型不同,值类型无法包含 null 值。然而,可译为 null 的类型功能确实允许将 null 赋给值类型。
每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值。
在使用 C# 中的局部变量之前,必须对其进行初始化。例如,可能声明未进行初始化的局部变量,如以下示例所示:
此语句是下列语句的等效语句:
当然,可以用同一个语句进行声明和初始化,如下面示例所示:
使用 new 运算符时,将调用特定类型的默认构造函数并对变量赋以默认值。
对于用户定义的类型,使用 new 来调用默认构造函数。
此调用后,该结构被认为已被明确赋值;也就是说该结构的所有成员均已初始化为各自的默认值。
引用类型的变量又称为对象,可存储对实际数据的引用。包括:
C# 是一种强类型语言。在变量中存储值之前,必须指定变量的类型。
XmlDocument tempDocument = new XmlDocument();
1. 作为变量:
2. 作为常数:
3. 作为返回值和参数:
return result;
}
由默认构造函数返回的值类型的默认值。默认构造函数是通过 new 运算符来调用的。
bool - false
byte - 0
char - '/0'
decimal - 0.0M
double - 0.0D
enum - 表达式 (E)0 产生的值,其中 E 为 enum 标识符。
float - 0.0F
int - 0
long - 0L
sbyte - 0
short - 0
struct - 将所有的值类型字段设置为默认值并将所有的引用类型字段设置为 null 时产生的值。
uint - 0
ulong - 0
ushort - 0
Console.WriteLine("该变量的初始值为 {0}", val);
Test(val); // 由于该数据类型属于值类型,所以将恢复其初始值
Console.WriteLine("该变量的值此时为 {0}", val);
}
static void Test(int getVal){
int temp = 10;
getVal = temp * 20;
}
}
static void Main(string[] args){
DataTypeTest objTest = new DataTypeTest();
objTest.Val = 100;
Test(objTest); // 传递属于引用类型的对象
// 由于该数据类型属于引用类型,所以会考虑新处理的值
Console.WriteLine("变量的值为 {0}", objTest.Val);
}
static void Test(DataTypeTest dataTest){
int temp = 10;
dataTest.Val = temp * 20;
}
装箱是从值类型到引用类型的转换
取消装箱是从引用类型到值类型的转换
C# 提供了一种“统一类型系统”
C# 中所有数据类型都是从一个类即 object 类派生而来的
class ObjectProff{
public static void Main(){
string Objectval;
}
- C#中的数据类型
- C#中的基本数据类型
- C#中的数据类型
- C#中的数据类型转换
- C#中的数据类型
- C#中的数据类型转换
- C#中的数据类型统计
- C#中的数据类型
- C#中的数据类型
- 浅谈C#中的数据类型
- C#中的数据类型
- C#中的数据类型
- c#中的数据类型
- 【C#】C#中的数据类型
- C#中的数据类型
- C#中的可空数据类型
- C#中的预定义数据类型
- 黑马程序员----C#中的数据类型
- 在Delphi中操作快捷方式
- LINQ 快速开发设计最佳实践
- Web 设计与开发终极资源
- 很强悍的js获取request参数的方法
- Sun 推荐的命名规范
- C#中的数据类型
- Python中的正则表达式匹配中文问题
- 毕业
- 可证明安全随笔
- tomcat5.5 整合 iis6.0
- Clone a MDD Lib,快速修改MDD层lib
- lock vs Monitor vs Mutex之间的区别
- POST上传
- .Net比较奇怪的问题