艾伟:C#基本语法简介

简介: 一、系统数据类型和C#简化符号  和各任何编程语言一样,C#定义了一组内建数据类型。每种类型都有对应的C#关键字、取值范围和作用,如系统类型中表示真实的或者虚假的类型为 System.Boolean,C#简化符号为bool,范围true或false;又如uint对应的系统类型是System.UInt32,范围 0~4294967295,代表一个无符号的32位数。

一、系统数据类型和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;
}
}
目录
相关文章
|
3月前
|
存储 开发框架 .NET
【C#】C# 基础语法与游戏开发
【1月更文挑战第21天】【C#】C# 基础语法与游戏开发
|
5月前
|
C#
C#的基本语法结构学习案例详解
C#的基本语法结构学习案例详解
27 0
|
29天前
|
C#
C#语法快速热身
C#语法快速热身
7 0
|
1月前
|
存储 C# 开发者
C#基础语法
C#基础语法
11 0
|
1月前
|
开发框架 安全 .NET
C# .NET面试系列一:基础语法
<h2>基础语法 #### 1. 字符串中 string str = null 和 string str = "" 和 string str = string.Empty 的区别? string str=null: ```c# 这表示字符串变量str被初始化为null,即它不引用任何对象。这与空字符串是不同的,因为空字符串是一个具有零长度的字符串对象,不会分配内存空间 ``` string.Empty: ```c# 这表示字符串变量str被初始化为空字符串,即一个具有零长度的字符串对象。这与null是不同的,因为str引用了一个空字符串对象 ``` string str="" :
58 1
|
3月前
|
存储 C#
C#基础语法(类和对象)
C#基础语法(类和对象)
20 2
|
3月前
|
存储 C#
C#基础语法(数组和函数)
C#基础语法(数组和函数)
15 1
|
3月前
|
C#
C#基础语法(判断和循环)
C#基础语法(判断和循环)
23 1
|
3月前
|
Java 程序员 C#
C# 介绍、应用领域、入门、语法、输出和注释详解
C#(发音为“C-Sharp”)是一种由 Microsoft 创建的面向对象的编程语言,运行在 .NET Framework 上。源于 C 家族,与流行的语言如 C++ 和 Java 相近。首个版本发布于 2002 年,而最新版本,C# 12,于 2023 年 11 月发布
66 0
|
3月前
|
SQL 开发框架 .NET
C#进阶-LINQ表达式基础语法
本篇文章我们将演示LINQ扩展包的基础语法,以Select查询、Count计数、Average平均值、OrderBy排序函数为例,目前LINQ支持两种语法,我会在每个案例前先用大家熟知的SQL语句表达,再在后面用C#的两种LINQ语法分别实现。LINQ语法第一次接触难免感到陌生,最好的学习方式就是在项目中多去使用,相信会有很多感悟。
51 0