--通用类型系统(CTS)--一些笔记

--通用类型系统(CTS)--

通用类型系统(CTS)定义了如何在运行库中声明、使用和管理类型,同时也是运行库支持跨语言集成的一个重要组成部分。通用类型系统执行以下功能:

–建立一个支持跨语言集成、类型安全和高性能代码执行的框架。
–提供一个支持完整实现多种编程语言的面向对象的模型。
–定义各语言必须遵守的规则,有助于确保用不同语言编写的对象能够交互作用。

--包含的两个类型:值类型(保存的类型就是值本身)(分配到栈上的)与引用类型(保存的地址引用)(分配在堆上的)(.net中系统自动分配的)

引用类型(reference type)总是从托管堆上分配。C#的new 操作符返回的就是对象位于托管堆中的内存地址——该内存地址指向对象占用的数据位。所有的引用类型及值类型均直接或间接继承自Object类型.

值类型实例通常分配在线程的堆栈上,表示值类型实例的变量不包含指向实例的指针——变量本身即包含了实例所有的字段。所有的值类型都继承自System.ValueType类型.System.ValueType类型本身又直接继承自System.Object 类型。值类型不能作为其他引用类型及值类型的基类型

eg:
converterclass.cs程序代码:

using System;
class Class1
{
 public int Value = 0;
 
}
class Test
{
  static void Main()

 {

 int val1 = 0;
 int val2 = val1;
 val2 = 123;
 Class1 ref1 = new Class1();
 Class1 ref2 = ref1;
 ref2.Value = 123;
 Console.WriteLine("Value:{0}, {1}", val1,val2);
 Console.WriteLine("Refs: {0}, {1}", ref1.Value, ref2.Value);

Console.ReadLine();

 }
}

注: 值类型跟引用类型的区别.

思考
定义自己的类型时,什么情况下应将类型定义为值类型?

Answer:
类型的行为类似于基元类型
类型不需要继承自其他类型
类型不会被任何其他类型继承
类型的实例不会频繁的用于方法的参数传递
类型的实例不会作为方法的结果频繁的返回
类型的实例不会频繁的用于ArrayList及HashTable之类的集合中


--子类跟基类--
子类的实例可以被认为是基类的类型。


object类型是所有类型的通用类型。
类型转换:
扩大转换及收缩转换
显式类型转换
intx = 5;
double y = (double) x;
隐式类型转换
int x = 5;
double y = x;

--System.Convert 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值