C#预定义类型(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           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();
 }
}
/* 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值