Variable Operations
变量的操作,数字操作上可以以下表为例。
Table 2-2. Arithmetic Operations
Operator Description Example
+ Addition 1 + 1 = 2.(加)
– Subtraction (and to indicate negative numbers) 5 – 2 = 3.(减)
* Multiplication 2 * 5 = 10.(乘)
/ Division 5 / 2 = 2.5.(除)
% Gets the remainder left after integer division 7 % 3 = 1.(取余)
同样也可以把计算后的值赋给变量,如 int number;number = 4+2*3;
字符串的操作,字符串操作也可以使用"+"运算符,
myName = firstName +" "+lastName;
Advanced Math
这个应该翻译成高级的数学运算,VS.NET 2005提供了一系列这样的函数,使得在计算时更加的方便,
int myValue;
myValue = Math.Sqrt(81) //开方
myValue = Math.Round(42.889,2) //保留小数点后面两位,四舍五入
myValue = Math.Abs(-10) //取绝对值
myValue = Math.Log(24.212) //返回指定数字的对数,这里是以e为底的,Math.Log(24.212,15),这个返回的是以15为底的24.212的对数
myValue = Math.PI //输出圆周率
还有许多这类的函数,可以参见MSDN HELP,System.Math类,我的确在MSDN上面找到了,许多这方面的内容大家找找看吧。
Type Conversions
类型的转换,我觉得这里需要注意的是,当一个int类型的变量赋值给long类型的时候,是不会出现问题的,但是当long类型赋值给int类型的时候就有可能出现问题了,因为如果long类型的变量的值比int所能表示的最大的值还要大的话,那么就会出现错误,因为int类型的变量无法承载比他最大值还要大的值.
然后是字符到数字的转换,和数字到字符的转换.把一个int变量的值转换成string,把一个string类型的值转换成int.需要用到的函数是,Convert.ToInt32()和Convert.ToString()这两个函数.
Object-Based Manipulation
.NET是面向对象的语言,任何被定义的类型其实际上都会被定义成对象.下面这个例子很能说明问题.
string myString;
int myInteger = 100;
myString = myInteger.ToString();
这说明myInteger被定义成了int类的对象,而ToString()正是这个对象的方法.
The String Class
这个我翻译为字符串类,上面那个我想应该叫数字类吧,呵呵,我取的名字.
同样,在被定义的时候,他会被定义成字符串类的对象,我认为以语言来表达是很难表达得清楚的,所以书中的例子可以说是很经典,也很能说明问题的.
string myString = "This is a test string ";
myString = myString.Trim(); //去掉空格字符,此时="This is a test string"
myString = myString.Substring(0,4); //选取以第一个字符开始的后面4位.="This"
myString = myString.ToUpper(); //全部变成大写,="THIS"
myString = myString.Replace("IS","AT"); //将里面所有的IS字符串换成AT,="THAT"
int length = myString.Length; //输出字符串长度,也就是有几个字符,=4
后面还有几个例子也很有趣味,一看就能明白了.嗯.还有一个就是字符串类的成员函数,这个嘛在MSDN HELP上面都有,而且还是中文的,很好理解.
The DateTime and TimeSpan Classes
这两个类型在C#中并没有,但他们却在基本类库中有,根据上节的内容,C#语言是可以直接使用他们的.
关于DateTime类的例子
DateTime myDate = DateTime.Now; //读取目前的时间
myDate = myDate.AddDays(100); //把myDate的天数加上100天
string dataString = myDate.Year.ToString();//然后把年份放在dataString里面
关于TimeSpan的例子(此类在MSDN中的解释是表示一个时间间隔。)
DateTime myDate1 = DateTime.Now;
DateTime myDate2 = DateTime.Now.AddHours(3000);
TimeSpan difference;
difference = myDate2.Subtract(myDate1); //用myDate2的时间减去myDate1的时间得到的值,从此实例中减去指定的 TimeSpan
double numberOfMinutes;
numberOfMinutes = difference.TotalMinutes; //将这个时间以分钟形式输出,获取以整分钟数和分钟的小数部分表示的当前 TimeSpan 结构的值。
除此之外,DateTime和TimeSpan还有许多的方法和成员,在MSDN HELP中可以找到,也是中文的,呵呵.
The Array Class
int[] myArray = {1,2,3,4,5};
int bound;
bound = myArray.GetUpperBound(0); //GetUpperBound()获取 Array 的指定维度的上限,例如此例中获取的是维数为0的上限,由数组可以看出,此上限是4.所以bound是4.
同样,他还提供了许多其他的方法,这也可以查看MSDN HELP,我现在觉得MSDN HELP还真有用啊,哈哈,还是中文的.
这一章的最后讲的是一些循环语句啊,条件语句啊,之类的,例如while,for,if,switch等等,这些和C++语言基本完全一致,没什么好说的了。这块略过了。不过在继续下一章之前最好还是要先复习一次。