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):
保留关键字 | ||||||
---|---|---|---|---|---|---|
abstract | as | base | bool | break | byte | case |
catch | char | checked | class | const | continue | decimal |
default | delegate | do | double | else | enum | event |
explicit | extern | false | finally | fixed | float | for |
foreach | goto | if | implicit | in | in (generic modifier) | int |
interface | internal | is | lock | long | namespace | new |
null | object | operator | out | out (generic modifier) | override | params |
private | protected | public | readonly | ref | return | sbyte |
sealed | short | sizeof | stackalloc | static | string | struct |
switch | this | throw | true | try | typeof | uint |
ulong | unchecked | unsafe | ushort | using | virtual | void |
volatile | while | |||||
上下文关键字 | ||||||
add | alias | ascending | descending | dynamic | from | get |
global | group | into | join | let | orderby | partial (type) |
partial (method) | remove | select | set |
C#数据类型
在 C# 中,变量分为以下几种类型:
-
值类型(Value types)
-
引用类型(Reference types)
-
指针类型(Pointer types)
值类型(Value types)
值类型变量可以直接分配给一个值。它们是从类 System.ValueType 中派生的。
值类型直接包含数据。比如 int、char、float,它们分别存储数字、字符、浮点数。当您声明一个 int 类型时,系统分配内存来存储值。
下表列出了 C# 2010 中可用的值类型:
类型 | 描述 | 范围 | 默认值 |
---|---|---|---|
bool | 布尔值 | True 或 False | False |
byte | 8 位无符号整数 | 0 到 255 | 0 |
char | 16 位 Unicode 字符 | U +0000 到 U +ffff | ‘\\0’ |
decimal | 128 位精确的十进制值,28-29 有效位数 | (-7.9 x 1028 到 7.9 x 1028) / 100 到 28 | 0.0M |
double | 64 位双精度浮点型 | (+/-)5.0 x 10-324 到 (+/-)1.7 x 10308 | 0.0D |
float | 32 位单精度浮点型 | -3.4 x 1038 到 + 3.4 x 1038 | 0.0F |
int | 32 位有符号整数类型 | -2,147,483,648 到 2,147,483,647 | 0 |
long | 64 位有符号整数类型 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 | 0L |
sbyte | 8 位有符号整数类型 | -128 到 127 | 0 |
short | 16 位有符号整数类型 | -32,768 到 32,767 | 0 |
uint | 32 位无符号整数类型 | 0 到 4,294,967,295 | 0 |
ulong | 64 位无符号整数类型 | 0 到 18,446,744,073,709,551,615 | 0 |
ushort | 16 位无符号整数类型 | 0 到 65,535 | 0 |
引用类型(Reference types)
引用类型不包含存储在变量中的实际数据,但它们包含对变量的引用。
换句话说,它们指的是一个内存位置。使用多个变量时,引用类型可以指向一个内存位置。如果内存位置的数据是由一个变量改变的,其他变量会自动反映这种值的变化。内置的 引用类型有:object、dynamic 和 string。
对象(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#基本语法和数据类型的主要内容,如果未能解决你的问题,请参考以下文章