C#基本语法和数据类型

Posted WhiteFive55KAI

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#基本语法和数据类型相关的知识,希望对你有一定的参考价值。

C#基本语法

对与C/C++没太大区别的地方不做过多记录

using 关键字

在任何 C# 程序中的第一条语句都是:

using System;

using 关键字用于在程序中包含命名空间。一个程序可以包含多个 using 语句。

标识符

标识符是用来识别类、变量、函数或任何其它用户定义的项目。在 C# 中,类的命名必须遵循如下基本规则:

  • 标识符必须以字母、下划线或 @ 开头,后面可以跟一系列的字母、数字( 0 - 9 )、下划线( _ )、@。
  • 标识符中的第一个字符不能是数字。
  • 标识符必须不包含任何嵌入的空格或符号,比如 ? - +! # % ^ & * ( ) [ ] . ; : " ’ / \\。
  • 标识符不能是 C# 关键字。除非它们有一个 @ 前缀。 例如,@if 是有效的标识符,但 if 不是,因为 if 是关键字。
  • 标识符必须区分大小写。大写字母和小写字母被认为是不同的字母。
  • 不能与C#的类库名称相同。

C# 关键字

关键字是 C# 编译器预定义的保留字。这些关键字不能用作标识符,但是,如果您想使用这些关键字作为标识符,可以在关键字前面加上 @ 字符作为前缀。

在 C# 中,有些关键字在代码的上下文中有特殊的意义,如 get 和 set,这些被称为上下文关键字(contextual keywords)。

下表列出了 C# 中的保留关键字(Reserved Keywords)和上下文关键字(Contextual Keywords):

保留关键字
abstractasbaseboolbreakbytecase
catchcharcheckedclassconstcontinuedecimal
defaultdelegatedodoubleelseenumevent
explicitexternfalsefinallyfixedfloatfor
foreachgotoifimplicitinin (generic modifier)int
interfaceinternalislocklongnamespacenew
nullobjectoperatoroutout (generic modifier)overrideparams
privateprotectedpublicreadonlyrefreturnsbyte
sealedshortsizeofstackallocstaticstringstruct
switchthisthrowtruetrytypeofuint
ulonguncheckedunsafeushortusingvirtualvoid
volatilewhile
上下文关键字
addaliasascendingdescendingdynamicfromget
globalgroupintojoinletorderbypartial (type)
partial (method)removeselectset

C#数据类型

在 C# 中,变量分为以下几种类型:

  • 值类型(Value types)

  • 引用类型(Reference types)

  • 指针类型(Pointer types)

值类型(Value types)

值类型变量可以直接分配给一个值。它们是从类 System.ValueType 中派生的。

值类型直接包含数据。比如 int、char、float,它们分别存储数字、字符、浮点数。当您声明一个 int 类型时,系统分配内存来存储值。

下表列出了 C# 2010 中可用的值类型:

类型描述范围默认值
bool布尔值True 或 FalseFalse
byte8 位无符号整数0 到 2550
char16 位 Unicode 字符U +0000 到 U +ffff‘\\0’
decimal128 位精确的十进制值,28-29 有效位数(-7.9 x 1028 到 7.9 x 1028) / 100 到 280.0M
double64 位双精度浮点型(+/-)5.0 x 10-324 到 (+/-)1.7 x 103080.0D
float32 位单精度浮点型-3.4 x 1038 到 + 3.4 x 10380.0F
int32 位有符号整数类型-2,147,483,648 到 2,147,483,6470
long64 位有符号整数类型-9,223,372,036,854,775,808 到 9,223,372,036,854,775,8070L
sbyte8 位有符号整数类型-128 到 1270
short16 位有符号整数类型-32,768 到 32,7670
uint32 位无符号整数类型0 到 4,294,967,2950
ulong64 位无符号整数类型0 到 18,446,744,073,709,551,6150
ushort16 位无符号整数类型0 到 65,5350

引用类型(Reference types)

引用类型不包含存储在变量中的实际数据,但它们包含对变量的引用。

换句话说,它们指的是一个内存位置。使用多个变量时,引用类型可以指向一个内存位置。如果内存位置的数据是由一个变量改变的,其他变量会自动反映这种值的变化。内置的 引用类型有:objectdynamicstring

对象(Object)类型

对象(Object)类型 是 C# 通用类型系统(Common Type System - CTS)中所有数据类型的终极基类。Object 是 System.Object 类的别名。所以对象(Object)类型可以被分配任何其他类型(值类型、引用类型、预定义类型或用户自定义类型)的值。但是,在分配值之前,需要先进行类型转换。

当一个值类型转换为对象类型时,则被称为 装箱;另一方面,当一个对象类型转换为值类型时,则被称为 拆箱

object obj;
obj = 100; // 这是装箱

动态(Dynamic)类型

您可以存储任何类型的值在动态数据类型变量中。这些变量的类型检查是在运行时发生的。

声明动态类型的语法:

dynamic <variable_name> = value;

例如:

dynamic d = 20;

动态类型与对象类型相似,但是对象类型变量的类型检查是在编译时发生的,而动态类型变量的类型检查是在运行时发生的。

字符串(String)类型

字符串(String)类型 允许您给变量分配任何字符串值。字符串(String)类型是 System.String 类的别名。它是从对象(Object)类型派生的。字符串(String)类型的值可以通过两种形式进行分配:引号和 @引号。

例如:

String str = "runoob.com";

一个 @引号字符串:

@"runoob.com";

C# string 字符串的前面可以加 @(称作"逐字字符串")将转义字符(\\)当作普通字符对待,比如:

string str = @"C:\\Windows";

等价于:

string str = "C:\\\\Windows";

@ 字符串中可以任意换行,换行符及缩进空格都计算在字符串长度之内。

string str = @"<script type=""text/javascript"">
    <!--
    -->
</script>";

用户自定义引用类型有:class、interface 或 delegate

指针类型(Pointer types)

指针类型变量存储另一种类型的内存地址。C# 中的指针与 C 或 C++ 中的指针有相同的功能。

声明指针类型的语法:

type* identifier;

例如:

char* cptr;
int* iptr;

C#的基本语法

一、数据类型
整型:byte  short   int   long
浮点型:float  double  decimal
字符串型:char  string
布尔型:bool
二、变量和常量
1、变量(和java一样) 数据类型  变量名;C#变量的命名规范(camel):首字母小写,其余单词首字母大写变量名只能由:字母,数字,下划线组成,且开头不能是数字
2、常量(使用const关键字)const  数据类型 常量名=常量值;
3、隐式数据类型var
三、运算符和表达式
算术运算符:+  -  *  /  %  ++   -- 
比较运算符:>  <  ==  !=  >=  <= 
逻辑运算符:&&(与)   ||(或)    !(非) 
快捷运算符:+=  -=  *=  /=  %=
三元运算符:判断条件 ? 条件为真返回的值 : 条件为假返回的值
四、分支结构
1、if-else分支
语法:
if(判断条件)
{
 条件成立时执行的语句;
}else{
 条件不成立时执行的语句;
}

2、switch-case分支
语法:
switch(int/char/string表达式)
{
 case 常量1:
  语句1;
  break;//必须写
 case 常量2:
  语句2;
  break;//必须写
 ......
 default:
 语句N;
 break;//必须写
}
五、循环结构
循环四要素:
起点
终点
起点到终点的变化
要做的事
1、do-while循环
语法:
do{
 循环体;
}while(判断条件);
2、while循环
语法:
while(判断条件){
 循环体;
}
3、for循环
语法:
for(起点;终点;起点到终点的变化){
 循环体;
}
4、foreach循环
主要用来遍历数组或集合
语法:
foreach(数据类型  元素  in  集合或数组)
{
 语句;
}
六、数组
1、数组的声明:数据类型[]  数组名;
2、数组的初始化:静态,动态
3、数组的长度:数组名.length
七、枚举enum(自定义数据类型)
语法:
public enum 数据类型名字
{
 枚举值
}
八、数据类型转换
1、把数值类型转换成字符串
值.ToString()
eg:double a = 5.2; string str = a.ToString();
2、把字符串转换成数值类型
数据类型.Parse(要转换的值);
eg:string str2 = "3.14";double b = double.Parse(str2);
3、万能转换Convert.To数据类型(要转换的值)
eg:string str3 = "5";int c = Convert.ToInt32(str3);int d = 6; string str4 = Convert.ToString(d);


以上是关于C#基本语法和数据类型的主要内容,如果未能解决你的问题,请参考以下文章

C#基本语法和数据类型

Unity基础学习之C#学习

Go语言和其他语言的不同之基本语法

C 语言编程系列

C#的基本语法

2. Go 语言基本语法