分享
 
 
 

ASP.NET.2.0.in.C.Sharp.2005.From.Novice.to.Professional的读书笔记[3]

王朝asp·作者佚名  2006-12-29
窄屏简体版  字體: |||超大  

CHAPTER2 Learning the C# Language

这一章将对C#语言进行概述。论述的内容包括数据类型,操作方式,定义函数需要的代码,循环,特定逻辑.虽然你不需要去了解全部的细节,但这正是职业与业余的区别.对学习者的建议是,你可以不必要去记住这一章,可以当有需要的时候返回到这一章来.

The .NET Languages

使用C#代替VB.NET仅仅只是开发形式的变化,而而并不影响其他,同样你也可以使用第三方提供的语言,但需要记住的是.NET Framework里CLR只认识中间语言,而并不认识其他的语言.所以使用任何语言编写的程序,在被编译成中间语言之前,是无法被CLR运行的.

C# Language Basics

Case Sensitivity

有些语言是大小写敏感的,例如C,C#,JAVA,而VB.NET不是的,如果使用VB.NET的人在使用大小写敏感的语言时,如果不注意大小写敏感,则编译器的编译是不能通过的.C#的语言比较多的是小写.

Commenting

注释加强程序代码的可读性,他不会被编译器编译,C#提供了两种注释方法,第一种在"//"后写注释,"//"所在行之后的内容全部会被当作注释,第二种/*与*/之间的内容,他们之间的内容会被当作注释.

C#还有一种基于XML的注释,此格式与HTML的语言很相近,格式是

///<summary>

///............

///............

///</summary>

他们之间的内容会显示出来,做为对某个按钮的使用说明.

Line Termination

C#语言的任何一个语句是以";"结尾的,如果一行最后没有";",那么他会把下一行也算为这个语句,直到";"为止.

例如:

myValue=myValue1+myValue2+myValue3;

myValue=myValue1+myValue2+

myValue3;

myValue=myValue1+

myValue2+

myValue3;

是一样的,他们代表的,执行的是同一个动作.

Block Strctures

C#的代码放在{}之间,{}之间的代码被看做是一个整体,{}里面还可以有{},而且{}是成对出现的,这好比是文章的开始"{"与文章的结束"}".

Variables and Data Types

任何语言都可以定义变量,变量用于存储相应的数据信息,使用C#定义变量时,首先要给变量命名,然后要赋予变量正确的类型,这些类型包括,文本,数据,时间,指针,类等等.例子 int errorCode 定义了一个名为errorCode的整数变量.

在解决不同语言的定义变量类型使用名称的不同这个问题上,微软提出了一个基础变量类型.

基础变量类型,VB变量类型,C#变量类型表如下:

Table 2-1.

Class Library Name VB Name C# Name Contains

Byte Byte byte An integer from 0 to 255.

Int16 Short short An integer from –32,768 to 32,767.

Int32 Integer int An integer from –2,147,483,648 to 2,147,483,647.

Int64 Long long An integer from about –9.2e18 to 9.2e18.

Single Single float A single-precision floating point number from approximately –3.4e38 to 3.4e38.

Double Double double A double-precision floating point number from

approximately –1.8e308 to 1.8e308.

Decimal Decimal decimal A 128-bit fixed-point fractional number that

supports up to 28 significant digits.

Char Char char A single 16-bit Unicode character.

String String string A variable-length series of Unicode characters.

Boolean Boolean bool A true or false value.

DateTime Date * Represents any date and time from 12:00:00 AM,

January 1 of the year 1 in the Gregorian calendar,

to 11:59:59 PM, December 31 of the year 9999.

Time values can resolve values to 100 nanosecond

increments. Internally, this data type is stored as a 64-bit integer.

TimeSpan * * Represents a period of time, as in ten seconds or

three days. The smallest possible interval is 1 tick

(100 nanoseconds).

Object Object object The ultimate base class of all .NET types. Can

contain any data type or object.

* If the language does not provide an alias for a given type, you can just use the .NET class name.

*代表,这种类型在此语言中没有定义,但这种类型是实际存在的,当然也是可以使用的,例如C#要使用TimeSpan类型,可以这样来定义,

TimeSpan mytime;/*我想,要使用TimeSpan类型,必须得加上一个前缀,例如System.Time.TimeSpan,这个不一定正确,只是打个比方*/

其他存在的数据类型也可以这样定义.

Assignment and Initializers

一旦定义了变量,就要对变量进行赋值了,例如

int errorcode;

errorcode = 10;

关于变量定义的方式,可以查看C语言的定义以及赋值方式.但有一点需要注意,例如:

decimal myDecimal = 14.5;

decimal表示的是数据范围是,大约是1.0*10^-28到7.9*10^28,decimal的位数是128,double的位数是64,那么为什么decimal没有double表示的范围大呢,这是因为浮点数分两部分存储:尾数和阶码(指数部分),表示尾数的位数多则精度高,表示指数的位数多则范围大,double虽然64位,但其精度低,故其可以表示的范围大,decimal虽然是128位,但由于其用了较多的位来表示其精度,只好牺牲表示范围了.在微软的帮助书中这样写到,decimal 关键字表示 128 位数据类型。同浮点型相比,decimal 类型具有更高的精度和更小的范围,这使它适合于财务和货币计算。

上面这个例子,赋值的时候会自动将myDecial定义为double类型,如果要避免这种情况的发生,则定义时要加上decimal myDecimal = 14.5M;

为什么定义的decimal类型变量在赋值的时候会被转换成double类型?有知道的高手还望指教一下!谢谢!

Strings and Escaped Characters

"\"和一些字符合在一起,就可以构成新的意思,所以"\"也被称为转义字符,*看来以后还是要具体的查查转义字符怎么使用*,例如

path = "c:\\myapp\\myfiles"; 它和 path = @"c:\myapp\myfiles"; 的意思是一样的,因此,@字符的意思为忽略@之后的"\"字符.

Arrays

数组,这个是许多语言都有的定义方式,他可以定义一系列相同类型的数据,例如int类型,数组的起始数字是0.例子:

string[] stringArray = new string[4];

此处定义了1个字符串数组,数组的名字是stringArray,数组的成员有4个(而不是5个,这个问题很容易混淆),访问数组的方式是,例如,访问数组成员的第一个是stringArray[0],第二个是stringArray[1],依次类推.

当然还可以定义一维数组,二维数组,三维数组.他们都遵循上面的规则.

在数组被定义,但是没被初始化的时候,他们会被默认为0或者false.

以二维数组为例子,定义一个二维数组.应该如下定义:

int[4,2] intArray = {{1,2},{3,4},{5,6},{7,8}};/*不一定要遵循这个赋值规则,这是两个值一起赋值,也可以单个单个 的赋值*/

上面的数组,可以使用理解EXCEL表格来理解,int[4,2],其中4代表行数,2代表列数,所以这个数列定义了8个整型,第一个是intArray[0,0],最后一个是intArray[3,1].

The Arraylist

这对我而言是个新东西,我说说我的理解吧,这个可以说是一个比较特殊的数组类型,你可以使用他来定义一个数组,但在没有转换他之前你是无法使用他的,因为他并没有具体的类型,他也许是int,也许是char,也许是string.你可以把你想要的数据放进去,等需要使用的时候再把他转换一下提出来,似乎我表达不清楚,那么我来举个例子吧.

ArrayList dynamiclist = new ArrayList();

dynamiclist.Add("one");

dynamiclist.Add("one");

dynamiclist.Add("one");

这样dynamiclist数组里面就有了三个,这三个都是one;

string item = Convert.ToString(dynamiclist[0]);

int myvalue = Convert.ToInt(dynamiclist[1]);/*ToInt是我猜测的,我并不知道有没有这个方法,我是类推的*/

bool myboolean = Convert.ToBool(dynamiclist[2]);/*ToBool也是猜的*/

我想,除了第一个是one字符串之外,第二个是数字,第三个是bool数.

因此,这个数组打破了一个数组内定义的数据必须是相同类型的这样一个规定,你可以往ArrayList型数组里放入数字,字符,字符串等.我想这就是这个数组类型存在的必要.

Enumerations

枚举,和类有点相似,但有不一样,类有方法,而他却没有,例如;

enum UserType

{

Admin,

Guest,

Invalid

}/*这几个会被自动赋值,Admin被赋值0,Guest为1,Invalid为2,需要注意的是,他们之间是",",而不是";"*/

UserType newUserType = UserType.Admin;

也可以自主赋值,只需要在后面加上=和数字即可,例如 Admin = 80;

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有