C#预定义类型(Predefined types)
2007-12-02 20:14
148 查看
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 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();
}
}
/*
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 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#15个预定义类型—C#基础回顾
- C#与Java对比学习:类型判断、类与接口继承、代码规范与编码习惯、常量定义
- c# 数据类型的默认值及如何定义空值
- C# 入门(2) 预定义类型、用户定义类型、值类型和引用类型、可空类型
- C#基础(四)(C#预定义值类型和引用类型)
- C#中的修饰符被用来定义类型和成员方法
- C#与Java对比学习:类型判断、类与接口继承、代码规范与编码习惯、常量定义
- C#定义类型后带问号
- 深入讲解C#编程中嵌套类型和匿名类型的定义与使用
- C#预定义数据类型简介
- 【第二篇日记】C# 的转义字符,结构定义、字符转换、类型检查、运算符以及正则表达式
- C#编程(四十一)----------用户定义的数据类型转换
- [C#基础]5.预定义和引用类型
- C#与.NET程序员面试宝典 3.1.2 面试题21:C#支持哪几个预定义的引用类型
- (教学思路 C#数组一)认识数组,了解数组类型、学习定义及初始化
- C# dynamic类型报错:“object”不包含“xxx”的定义
- More Effective C# Item6 : 使用委托定义类型参数上的方法约束
- C/C++中 size_t 与C#中类似的类型定义
- c#之用户定义的数据类型转换