走进C#(我的C#学习之旅) 之四(2)

在正式开始讲解数据类型之前,我要强调的一点是:C#和Java一样都是强类型的语言。所谓的强类型的语言第一点就是说C#的每个变量都是有类型的,而且每个表达式也有类型。这种类型的定义都是相当严格的。第二点就是说在C#中所有的数值传递,不管是直接的还是通过方法调用经由参数传递的都要先进行类型相容性的检查。

简单说C#的数据类型主要分为值类型和引用类型两大类。
那么这两大类类型究竟有什么区别呢?关于这个书中说了很多,其实最主要的是就是他们的存储位置和引用方式不同。值班类型变量把其数据存储在堆栈中,而引用类型把变量的数据存储在堆中。所谓的值类型其实就是变量本身包含他们的数据,而引用类型的变量包含的则是指向数据存储地引用(这是我总结的)。

具体来说,C#共有15个预定义类型,其中13个值类型,2个引用类型(string,object)。

那么首先我们来看看13个基本类型。

看一下下面的这张表格:

看了这张表格,大家是不是基本有个了解了?其实这些数据类型和Java及其它的一些编程语言是很相似的。
下面就一些注意的地方再简述一二(不对的地方请大家指正吧,呵呵~)。
(1)在C#的数据类型中的byte与char的意义是不同的,所以他们之间进行编译转换时一定要注意。
(2)bool和C中的完全不同,他的值true与false决不等价于1与0。
(3)在C#中char类型是用''引起来的,如果用" ",那就变成string了。
(4)对于char类型,它也和C等语言类似,存在转意字符。下面拉个表给大家

转义序列
字符

\’
单引号

\”
双引号

\\
反斜杠

\0

\a
警告

\b
退格

\f
换页

\n
换行

\r
加车

\t
水平制表符

\v
垂直制表符

(5)char类型除了我说过的用''来表示外,还可以用如下的方式:'\u0041'(四位16进制unicode值),'\x0041'(这是16进制的形式,还有(char)65。
还有一点差点忘了,在定义一个变量之后,一定要赋初值。

关于基本类型就是这么多了,下面咱们看看引用类型。

引用类型其实就只有两个(object,string),那么我们首先来看看object。
我想根据字面的意思,大家已经猜个八九不离十了吧!
在C#中,object类型是从所有内在和用户定义的类型的老爸(够形象吧)。可以用object引用绑定任何特定子类型的对象。

我想对于使用C语言的朋友,对于字符串处理的繁琐的应该印象深刻吧(我可是深有体会)。不过这回来学C#的,可以放心,在C#已经预置了这种类型。

为了更加透彻的理解string,我们来看个例子。
using System;
class StringExample
{
public static int Main()
{
string s1="A string";
string s2=s1;
Console.WriteLine("s1 is" + s1);
Console.WriteLine("s2 is" + s2);
s1="Another string";
Console.WriteLine("s1 is now" +s1);
Console.WriteLine("s2 is now" + s2);
return 0;
}
}

大家觉得会输出什么结果,我卖个关子(我猜错了)。

怎么样,结果出来了吗?
我可说结果了!如果你对了,你真是天才!

时间: 2024-10-29 16:16:58

走进C#(我的C#学习之旅) 之四(2)的相关文章

我的Android学习之旅(转)

  去年大概在七月份的时候误打误撞接触了一阵子Android,之后由于工作时间比较忙,无暇顾及,九月份的时候自己空闲的时间比较多,公司相对来说加班情况没以前严重.开启了个人的Android学习之旅,初衷是想将Android的博客做个索引文章的,不过想想还可以分享一些学习中的历程,算是对自己的Android学习 有个交代吧.由于在公司有工作,学习的时间通常就是周一到周五晚上的时间和周末时间,周一到周五晚上的时间不确定,因此牺牲了大量的周末时间来学习Android,有点像苦行僧,时间段持续了三个多月

走进C#(我的C#学习之旅) 之四(1)

前面两章花了很多的时间都在讲述一些理论的东西,大家是不是觉得很无趣(是!说真的我的头也大了,我也是强挺着读下去的.).那么这回大家终于开以松一口气,从这一章开始,我们将正式踏进C#的世界了.由于这章的内容比较多,也比较重要,所以分几节来学习.Ready,Go! 这一章主要讲解了C#的语法及词法结构.包括C#程序的基本结构.数据类型.常量.变量.操作运算符.流控制,注释,C#的编译方面等内容.我看了一下他的许多方面与C++和JAVA有相似之处,我想有以上语言基础的朋友学起来会更快一些. 下面以一个

走进C# (我的C#学习之旅)之三

终于来到第二章了,真是不容易(呵呵,大家少安毋躁). 这章总的来说就是对C#的一个总体的概述.首先通过对以往的编程语言(汇编,C/C++,java,vb)的回顾,强调这些语言与C#的联系及C#对这些语言优秀特性的继承,试图在其中打到C#的影子.然后对现在市面上流行的编程语言与C#进行比较,从而突出C#做为新一代的编程语言的重要性及优越性.之后再次简述了C#的新特性(感觉作者的废话太多了).最后简述了C#在各种程序开发中的应用及C#的编译器的使用. 这章的大致内容就是这些,下面依照各分节的顺序来看

走进C#(我的C#学习之旅) 之四(3)

怎么样?答案是这样的 s1 is A strings2 is A strings1 is now Anothing strings2 is now string 看到这个结果大家感觉怎么样!我是很感到意外的.因为根据原来的C实现字符串的方式, 在这里面作为一个指针来说,s1与s2应该指向相同的地址. 另外对于字符串处理还有另一个问题,如下例:要构建如下一个串:"C:\PROGRAM FILE\WOM",我想大家明白我的意思了吧!就是说在这里有 \ 但是 \ 是做为转义字符来用的.(嗯,

VS.NET 学习方法论——tuenhai的 VS.NET 学习之旅

作者:Tuenhai.com MSN: king#tuenhai.com 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明 http://www.Tuenhai.com/ 题记 : 即使你没有一点编程经验,只要你愿意,并理解本文介绍的学习方法,你也可以象作者一样轻松.愉快地步入程序设计之门.让我们一起开始激动人心的 VS.NET 之旅.一.通过 Internet 获取知识的能力是网络时代最重要的能力 在 26 岁的时候,给自己定下目标, 35 岁之前必须掌英语和

C++ 学习之旅三——我和超级玛丽有个约会

学习了c++有一周有余了吧,感谢孙鑫老师的视频教程,让我   对C++有了基本的了解,并理解到C++与.net 的许许多多的区别,更要感谢网民为programaking的人,会为我提供了超级玛丽制作揭秘 这套宝贵的教程,让我 做做出了这个项目,对c++ 有了一个更深层次的认识.我就把我做超级玛丽这个游戏的心得,体会写成博客分享给大家把.  首先,我说说对C++的最直观的感受吧!熟悉了.net 智能提示,开始一开始发现C++根本没有提示了.后来google了一下,下载了一个visual assis

C++ 学习之旅一——Windows程序内部运行原理

      学习C++与.net不同的是,一定要搞清楚Windows程序内部运行原理,因为他所涉及大多数是操作系统的调用,而.net毕竟是在.netFrameWork上唱戏.        那Windows应用程序,操作系统,计算机硬件之间的相互关系究竟什么了,下面的图就给予很好的解释.       向下箭头①是 应用程序运行判断处理的结果,输出到输出的设备.       向上箭头②是输入设备,输入到操作系统中.       向下箭头③代表API,我们要解释以下API是什么.API是应用程序接口

我的Java开发学习之旅------>Java经典面试题

摘自张孝祥itcast 从享受生活的角度上来说:"程序员并不是一种最好的职业,我认为两种人可以做程序员,第一,你不做程序员,你就没有什么工作可做,或者说是即使有可以做的工作但是你非常不愿意去做:第二,你非常痴迷和爱好程序,并且在这方面有一些天赋和优势.程序员的结局也是有两种:第一,默默退休,第二以程序员为起点或跳板,注意积累,跟对了好的老板或团队,找到和很好的搭档自己创业,成为IT金领和富翁." 人们在时间面前是平等的,吾生也有涯,所以,你的经验更丰富点,那不算什么,经验是用时间积累的

我的Java开发学习之旅------>工具类:Java获取字符串和文件进行MD5值

ps:这几天本人用百度云盘秒传了几部大片到云盘上,几个G的文件瞬秒竟然显示"上传成功"!这真让我目瞪口呆,要是这样的话,那得多快的网速,这绝对是不可能的,也许这仅是个假象.百度了一下才发现所谓的"秒传"是常见的"忽略式"上传方式,就是您上传了一个文件名为111.exe,MD5为一个数,有一个网友以前也上传一个叫222.exe,MD5和您上传的文件MD5码一模一样,所以这个文件上传到服务器上的时间就很短了,这是因为别人上传过这个文件,您上传这个文件