您的位置:知识库 » .NET技术

C#基本语法简介

作者: to be a talent  来源: 博客园  发布时间: 2009-05-19 10:34  阅读: 5921 次  推荐: 0   原文链接   [收藏]  

一、系统数据类型和C#简化符号

  和各任何编程语言一样,C#定义了一组内建数据类型。每种类型都有对应的C#关键字、取值范围和作用,如系统类型中表示真实的或者虚假的类型为 System.Boolean,C#简化符号为bool,范围true或false;又如uint对应的系统类型是System.UInt32,范围 0~4294967295,代表一个无符号的32位数。其中bool是遵循CLS(公共语言规范),而uint则不遵循CLS(符合CLS的.NET代码可以被任何托管编程语言使用,不止是C#,还有VB.NET和托管C++等)。

  C#内建的系统型有15个,请查看.NET Framework 3.5文档来熟悉它们。

二、变量声明和初始化。

  如果要声明一个数据类型作为变量,可以通过在变量名之前指定类型来实现,还可以使用全名分配数据类型。如:

bool mybool = false;

string myString;

myString
= "This is a string.";

System.Int32 i1
= 0, i2, i3 = 56;

  在使用变量前必须先对变量赋值,否则会收到一个编译错误(如上文加上" i2 = i2 +5 ",是不能通过编译的)。内建数据类型还支持构造函数(对于构造函数,后面章节会有介绍),这不允许我们使用new关键字来创建变量,它将变量自动设置为其默认值:
int i4 = new int(); // i4设置为0。

i4
= i4 + 5 ; // i4现在的值为5。

三、数据转换

  不同类型的数据是可以转换的。

  按转换前后的数据的位数变化可分为窄化转换和宽化转换:当一种类型的值转换为大小相等或更大的另一类型时,则发生宽化转换(也叫扩大转换);当一种类型的值转换为较小的另一种类型时,则发生窄化转换(也叫收缩转换)。宽化转向不会导致数据丢失,因此允许隐式进行。但窄化转换因为有数据丢失的风险(称为溢出),将导致编译错误。如果希望通知编译器我们想要处理窄化运算引起的可能的数据丢失,就必须使用C#强制转换运算符()来进行显式强制转换:
byte myByte = 0;

int myInt = 200;

myByte
= (byte)myInt;

  如果我们在构建一个不能接受数据丢失的应用程序,C#提供的checked关键字将确保数据丢失肯定会被检测到。

myByte = checked(byte)myInt;

  如果发生数据丢失,将发生一个运行时异常(对于异常,后面将深入讨论)。另外,C#编译器还提供/checked标志,可以设定项目级别的溢出检测。与checked相对的还有unchecked关键字,请查阅相关文档进行了解。

四、运算符

  C# 提供大量运算符,这些运算符是指定在表达式中执行哪些操作的符号。通常允许对枚举进行整型运算,例如 ==、!=、<、>、& lt;=、>=、^、&、|、~、++、-- 和 sizeof()。此外,很多运算符可被用户重载,由此在应用到用户定义的类型时更改这些运算符的含义。各运算符的用法及优先级,请查阅相关文档。

  新增的运算符??:如果 ?? 运算符的左操作数非 null,该运算符将返回左操作数,否则返回右操作数。

  另一个新增的Lambda运算符(=>)会在后面章节中讲述。

五、流程控制

  1.C#迭代结循环构

  除了基本的for循环,while循环及do/while循环,C#还允许通过使用foreach关键字遍历数组中的所有项:
string[] carTypes = {"Ford","BMW","Yugo","Honda"};

foreach(string c in carTypes)

Console.WriteLine(c);


  2.C#条件结构

  if/else语句。C和C++的程序员要注意,C#中的if/else语句只能作用于布尔表达式,不能用于诸如-1、0这样的值。

  switch语句。C#switch语句一个不错的特性是,除了数值数据之处,我们还可以运算字符串数据:

    static void ExecuteSwitchOnString()
{
Console.WriteLine(
"C# or VB");
Console.Write(
"Please pick your language preference: ");

string langChoice = Console.ReadLine();
switch (langChoice)
{
case "C#":
Console.WriteLine(
"Good choice, C# is a fine language.");
break;
case "VB":
Console.WriteLine(
"VB .NET: OOP, multithreading and more!");
break;
default:
Console.WriteLine(
"Wellgood luck with that!");
break;
}
}

0
0
标签:CSharp

.NET技术热门文章

    .NET技术最新文章

      最新新闻

        热门新闻