c#基础知识

1、变量


1.1变量类型


C#常用的数据类型包括:
整型(Integer):
一共有8个byte、sbyte、int、uint、short、ushort、long、ulong
有符号的整形变量:是能存储一定范围正负数,包括零的变量类型,sbyte、int、short、long
无符号的整形变量:是能存储一定范围正数和零的变量类型,byte、uint、ushort、ulong

c#基础知识

浮点型(Floating-point):
用于表示带有小数部分的数值,包括float、double等。
浮点数(小数):float存储7/8位有效数字,根据编译器不同,有效数字也可能不一样,抛弃的数字会四舍五入;double存储15~ 17位有效数字,抛弃的数字会四舍五入;decimal存储27~28位有效数字。

字符型(Character):
用于表示单个字符,使用char类型。

字符串型(String):
用于表示一串字符,使用string类型。

布尔型(Boolean):
用于表示真或假,使用bool类型。

数组(Array):
用于存储多个相同类型的元素,可以使用一维数组、多维数组或者交错数组。

枚举(Enum):
用于定义一组命名的常量值,可以使用enum关键字定义。

结构体(Struct):
用于封装多个相关的数据成员,可以使用struct关键字定义。

类(Class):
用于封装数据和方法,可以使用class关键字定义。

接口(Interface):
用于定义一组方法和属性的规范,可以使用interface关键字定义。

变量的使用规则:先声明再赋值最后使用

int number;
 number=10;
  number=20;
 Console.WriteLine(number);


1.2.变量大小


sizeof(变量类型)可以得到该变量类型所占空间大小(单位字节)

C#中char占两个字节,bool占一个字节。sizeof不能得出string类型所占空间大小。


1.3 Camel Pascal


必须遵守的规则:
不能重名、不能以数字开头、不能使用程序关键字命名、不能有特殊符号(下划线除外)
建议的命名规则:变量名要有含义,用英文(拼音)表示变量的作用。非常不建议的命名规则:用汉字命名 。

命名法则(驼峰命名法):
Camel(驼峰)
 在C#中变量使用此命名方式。
 首个单词的首字母小写,其余单词的首字母大写(如:myValue)。

Pascal(帕斯卡)
 在C#中 方法、类、属性 使用此命名方式。
 每个单词的第一个字母都大写(如:MyValue)。
 如果使用到英文单词的缩写,全部使用大写(如:HP、MP)。

2、常量

静态常量/编译时常量,在编译时便用该常量的值代替常量变量。     用 const 修饰

静态常量特点:必须初始化、不能被修改

声明静态常量的语法: const 变量类型 变量名=值;

动态常量/运行时常量,在运行时返回一个运行时常量的变量引用。   用readonly 修饰

public const int a=1 ;//静态常量
public static readonly  int b=13;//动态常量

Compile-time constant:

1.在编译时会用其值替换掉所有的编译时常量变量,当你更换程序集时,在引用的程序中,原来编译时常量的值不会改变。(在编译时就已经用值替换了变量)

2.用const定义的常量,对于所有类对象而言都是一样的,因此需要像访问静态成员那样去访问const定义的常量,而用对象的成员方式去访问会出变异错误。

此外,对于静态常量的访问在编译的时候,是用常量的值去替换常量,例如: 
 int nValue = MAX_VALUE; 
这句在编译之后,和如下这句所产生的中间语言代码是一样的。 
 int nValue = 10; 

3.在用const来定义常量的时候,在类型上有很多限制:

首先,此类型必须属于值类型,同时此类型的初始化不能通过new来完成,因此一些用struct定义的值类型常量也不能用const来定义。 

Runtime constant:

1.运行时保留的是运行时变量的引用,所以会用新的值代替掉原来的值。

2.对于运行时常量,只能在初始化时赋值,或者是构造函数中复制。而不能在其他地方赋值,否则会提示错误。

3.为什么称为动态变量?

因为系统要为readonly所定义的常量分配空间,即和类的其他成员一样拥有独立的空间。

此外,readonly所定义的常量除了在定义的时候可以设定常量值外,还可以在类的构造函数中进行设定。

由于readonly所定义的常量相当于类的成员,因此使用const来定义常量所受到的类型限制,在使用readonly去定义的时候全部消失,即可以用readonly去定义任何类型的常量。

版权声明:如无特殊标注,文章均来自网络,本站编辑整理,转载时请以链接形式注明文章出处,请自行分辨。

本文链接:https://www.shbk5.com/dnsj/74341.html