网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > C# > 正文
写给转向C#的C++程序员的C# FAQ
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/14
下载{$ArticleTitle}原创论文样式
,但也不完全是。和所有.NET语言(例如Visual Basic .NET和JScript .NET)一样,C#可以访问.NET类库。并没有一个仅属于C#的类库,.NET类库是所有语言共享的。 2. 基本类型 2.1 C#支持哪些标准类型? C#支持的基本类型和C++非常相似,包括int、long、float、double、char、string、数组(array)、结构体(struct)和类(class)等等。但是,别想得太好,这些类型的名字虽然相似,但某些细节可能有所不同。例如,C#中的long型数据是64位,而C++中long型数据的大小取决于所处的平台(通常在32位平台上是32位,在64位平台上是64位)。另外,在C++中类和结构体几乎是完全相同的,但在C#中则不是这样。2.2 C#中所有的类型都是从一个共同的基类派生来的吗? 既是也不是。所有的类型都会被作为object类(System.Object)的派生类来对待,但是如果要把值类型(例如int和float)的实例作为object派生类来处理,就必须通过所谓的“装箱(boxing)”过程将该实例转换成引用类型。从理论上来说,开发者可以完全忽略这个过程,让运行时来操心转换的细节。但是,这种隐式转换实际上会有一些副作用,可能会给粗心大意的开发者带来一些麻烦。 2.3 那么,我是否可以将值类型的实例传递给需要对象作为参数的方法呢? 是的,可以这样做。例如:
class CApplication
{
          public static void Main()
          { 
                    int x = 25; 
                    string s = "fred"; 
                
                    DisplayMe( x ); 
                    DisplayMe( s ); 
          } 
          
          static void DisplayMe( object o ) 
          { 
                    System.Console.WriteLine( "You are {0}", o ); 
          }
} 
这段程序的输出是:
You are 25
You are fred
2.4 值类型和引用类型之间有什么本质性的区别? C#将类型分为两种:值类型和引用类型。绝大多数固有类型(例如int和char)都是值类型,结构体也是值类型。引用类型则包括类、接口(interface)、数组和字符串(string)。这里的根本思想很简单:值类型的实例表现的是实际数据,并被保存在栈上;而引用类型的实例表现的则是指向数据的指针或者引用,并被保存在堆上。最令C++开发者感到迷惑的就是:对于哪些类型作为值来表现、哪些类型作为引用来表现,C#已经预先确定了。而C++开发者往往希望由自己来做这样的决定。 例如,在C++中,我们可以这样做:
int x1 = 3;               // x1 is a value on the stack
int *x2 = 	

	
			

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号