初探c#(四)预定义类型
来源:网络收集 责任编辑:栏目编辑 发表时间:2013-07-01 16:09 点击:次
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 converttype '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 string s = "Hello";
Unicode characters
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 bool value = true;
true or false
char Character type; a char value is a Unicode char value = 'h';
character
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();
}
}
/*
这一节有点沉闷。:(
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 converttype '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 string s = "Hello";
Unicode characters
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 bool value = true;
true or false
char Character type; a char value is a Unicode char value = 'h';
character
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();
}
}
/*
这一节有点沉闷。:(
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>