初探c#-4
作者: 依栏望海[17731168] 2000-10-25 23:52:26 修改 删除 [回复]
1。4 预定义类型(Predefined types)
c#提供了一系列预定义类型。它们与c/c++有不少相似的地方。预定义引用类型有object
和string
。 object
类型是所有其他类型的基础。
预定义类型包括符号数、无符号数、浮点、布尔、字符和十进制数。
- 符号数有:
sbyte
、short
、int
和long
; - 无符号数有:
byte
、ushort
、uint
和ulong
; - 浮点数有:
float
和double
。 - 布尔类型就像一个开关,只有两种状态:
true
或false
。
c#对布尔的要求比c/c++严格,与java类似。
在c#中false不等于0,true也不等于1;false和true都是单独分离出来的一个值。学过c/c++的网友都知道
int i = 0;
if (i = 0) { // Bug: 应该是 (i == 0)
....
}
/* 是没有问题的。但在c#中会引发一个编译错误(error CS0029: Cannot implicitly convert type 'int' to 'bool')。
当然,这样牺牲了一点没有必要的灵活性。我们再也不能这样:*/
string str;
....
if(str = Console.ReadLine()) {
Console.WriteLine("Your comments are: {0}",str);
....
/* 而必须:*/
using System;
class BoolTest
{
static void Main() {
string str = Console.ReadLine();//也可以:string str;
if(str == "") // if((str = Console.ReadLine()) == "")
Console.WriteLine("i can't read your comments. Please tell me something! O.K.?");
else
Console.WriteLine("Your comments are: {0}",str);
}
}
我抄了一张预定义类型的简表供大家参考。
Type | Description | Examples |
---|---|---|
object | The ultimate base type of all other types | object o = new Stack(); |
string | String type; a string is a sequence of Unicode characters | string s = "Hello"; |
sbyte | 8-bit signed integral type | sbyte val = 12; |
short | 16-bit signed integral type | short val = 12; |
int | 32-bit signed integral type | int val = 12; |
long | 64-bit signed integral type | long val1 = 12;long val2 = 34L; |
byte | 8-bit unsigned integral type | byte val1 = 12;byte val2 = 34U; |
ushort | 16-bit unsigned integral type | ushort val1 = 12;ushort val2 = 34U; |
uint | 32-bit unsigned integral type | uint val1 = 12; uint val2 = 34U; |
ulong | 64-bit unsigned integral type | ulong val1 = 12;ulong val2 = 34U; ulong val3 = 56L;ulong val4 = 78UL; |
float | Single-precision floating point type | float value = 1.23F; |
double | Double-precision floating point type | double val1 = 1.23;double val2 = 4.56D; |
bool | Boolean type; a bool value is either true or false | bool value = true; |
char | Character type; a char value is a Unicode character | char value = 'h'; |
decimal | Precise decimal type with 28 significant digits | decimal value = 1.23M; |
你也可以自定义自己的预定义类型,可以这样:
using System;
struct Digit
{...}
class Test
{
static void TestInt()
{
int a = 1;
int b = 2;
int c = a + b;
Console.WriteLine(c);
}
static void TestDigit()
{
Digit a = (Digit)1;
Digit b = (Digit)2;
Digit c = a + b;
Console.WriteLine(c);
}
static void Main()
{
TestInt();
TestDigit();
}
}
这一节有点沉闷。:(
作者: Burn[5151599] 2000-10-26 09:55:02 [回复]
呵呵,我又是第一个了,呵呵,那个王先生呢! 兄弟再来,我喜欢看。
我是个盖世英雄,有一天我会驾着七彩降云杀入敌营去救我的情人,我猜对了前头 也猜对了这结果。(Zzzz....)
作者: 王志清[21847847] 2000-10-27 21:26:28 [回复]
兄弟今天来的是晚了一点,真是抱歉之极! 只好坐后面一点,认真听课了……