预定义数据类型

C#中把数据类型分为2种:

 1. 值类型  -  存储在堆栈中,直接存储其值。

 2. 引用类型 -  存储在托管堆上,存储对值得引用。

 这种存储位置的不同会有不同的影响:

1 //例如:下面的语句会在内存的两个地方存储值20。
2 //i和j都是int类型
3 i = 20;
4 j = i;
 1 //假定有一个类Human,已经定义了字段age。
 2 Human x, y;
 3 x = new Human();
 4 x.age = 30;
 5 y = x;
 6 Console.WriteLine(y.age);  //30
 7 y.age = 50;
 8 Console.WriteLine(x.age);  //50
 9
10 //x,、y是引用类型变量,只有new才会产生实例,x和y同时指向了一个实例,对x、y的操作其实是操作同一个实例

如果变量是一个引用,就可以把它值设置为null,表示它不引用任何对象。

1 Human y = null;

把基本数据类型(int、bool)定义为值类型,把包含复杂字段的较大类型(类)定义为引用类型,这种设计的原因是可以得到最佳性能。

如果需要把自定义类型声明为值类型,那么应该声明为结果Struct。

  

时间: 2024-10-13 11:10:27

预定义数据类型的相关文章

Visual Studio 2012 预定义数据类型

预定义数据类型 一.值类型 整型:(整数) 有符号整型和无符号整形,区别是有符号的有负数无符号的都是正数, 2x+1 常用int 有符号:              带有正负数,范围为按所写依次增大 Sbyte   -128到127    有符号8位整数 short    -32,768 到 32,767    有符号16位整数 int     -2,147,483,648 到 2,147,483,647     有符号 32 位整数 long   -9,223,372,036,854,775,

(二)预定义数据类型

一.值类型和引用类型 1.值类型和引用类型的区别 (1)值类型直接存储值,引用类型存储对值得引用 (2)值类型存储在堆栈中,引用类型存储在托管堆上 2.如果变量是一个引用,则可以把其值设置为null,表示它不引用任何对象 3.在C#中,基本类型如bool和long都是值类型.相反,大多数更复杂的C#数据类型,包括我们自己声明的类都是引用类型. 4.如果需要把自己的类型定义为值类型,就应该把它声明为一个结构. 二.CTS类型 C#认可的基本预定义类型并不是内置在C#语言中的,而是内置于.NET F

2.3预定义数据类型

C#数据类型包括 值类型:存储其值,存储在堆栈中. 引用类型:存储对值的引用,存储在托管堆上 CTS值类型包括:整型和浮点型.字符类型和布尔型. 预定义的引用类型包括:object和string. 注意:string每次修改或者赋值都会分配新的空间,string 是不可变类型.

C#变量,常量,预定义数据类型、名称控空间之基础点

1.变量的初始化:在使用变量之前需要对变量进行初始化 1>类中或者结构中的字段,在未进行显示初始化时,变量的默认值是0; 2>方法中的变量必须显示初始化才能正确的调用,举例说明引用类型的初始化:Something objSomething;此时变量仅仅创建了引用,这个引用未指向任何对象,无法调用该变量:     objSomething=new Something();使用new 关键字将该引用指向存储在堆上的一个对象 2.var关键字的类型推断 1>变量必须初始化,2>初始化器不

【第一篇】SAP ABAP7.50新语法之预定义数据结构

前言部分 先说一下,之前有些文章被转载之后也没有注明,这个就比较不好.如果你觉得本文写的并不好,那么可以直接去看HELP,这样更直接,我这里只是做记录,如果读者朋友感兴趣,可以关注公众号,也可以在本文末留言,毕竟谁都不会那么厉害,什么内容都会,总会有说错或者不会的. ABAP关键字 ABAP关键字是ABAP语言的词汇表. ABAP语句根据定义的语法规则由ABAP里的关键字,操作数和运算符组成. ABAP关键字取自英语,分为ABAP语言元素和表示语句语义的ABAP语言元素添加.除字母外,ABAP关

.NET中那些所谓的新语法之三:系统预定义委托与Lambda表达式

开篇:在上一篇中,我们了解了匿名类.匿名方法与扩展方法等所谓的新语法,这一篇我们继续征程,看看系统预定义委托(Action/Func/Predicate)和超爱的Lambda表达式.为了方便码农们,.Net基类库针对实际开发中最常用的情形提供了几个预定义好的委托,这些委托可以直接使用,无需再重头定义一个自己的委托类型.预定义委托在.Net基类库中使用的比较广泛,比如在Lambda表达式和并行计算中都大量地使用,需要我们予以关注起来! /* 新语法索引 */ 1.自动属性 Auto-Impleme

PHP_零基础学php_2变量、预定义变量、预定义常量、表达式、运算符、程序控制流程

1.变量 PHP中使用$后跟变量名表示一个变量,变量名区分大小写. 变量的数据类型 整数类型 浮点类型 字符串类型 布尔类型 数组类型 对象 <html> <head> <title>php</title> </head> <body> /* 整数类型:可以在php中指定的整数包括十进制.八进制.和十六进制,整形数值前可以加上符号“+”或“-” */ $i=2468;//指定一个十进制整数 $i=-2468;//指定一个十进制负数 $

STL算法设计理念 - 预定义函数对象

预定义函数对象基本概念:标准模板库STL提前定义了很多预定义函数对象 1)使用预定义函数对象: #include <iostream> #include <cstdio> #include <algorithm> #include <string> #include <vector> #include <functional> using namespace std; // plus,预定义好的函数对象,能实现不同类型数据的 + 运算

PL/SQL预定义异常

预定义的异常 PL/SQL提供了许多预定义的异常,这些异常在程序违反任何数据库规则时执行. 例如,当SELECT INTO语句不返回任何行时,会引发预定义的异常NO_DATA_FOUND.下表列出了一些重要的预定义异常情况 - 异常 Oracle错误代码 SQLCODE 描述 ACCESS_INTO_NULL 06530 -6530 当一个空对象被自动分配一个值时会引发它. CASE_NOT_FOUND 06592 -6592 当没有选择CASE语句的WHEN子句中的任何选项时,会引发这个错误,