二、变量的处理和表达式

变量和常量

本小节主要讲些变量的一些规则和开发中的注意事项。

变量命名

1.基本的规则:

  1. 变量的命名必须以字母、“_”或者“@”开头,以“@”开头是没有意义的,等同于不存在。
  2. 后面可以跟随字母数字和“_”。
  3. 在C#中同时支持以中文作为变量名,但是一般开发不建议如此是使用。
  4. 需要注意以下事项:
    1.起的变量名不能与系统中的关键字重复。
    2.在C#中,大小写敏感。
    3.在同一代码块中,变量不能重复定义。如果在上级代码块中包含了这个变量,那么下级代码块就不能定义相同的。如果两个代码块是互不干扰的两个代码块,则可以定义相同的变量。
    4.定义变量的时候,一般建议变量是需要有意义的,一下编译可以通过的代码所有的变量定义都是在规则上允许,但是不建议。
//编译通过
int @sfsdf = 123;
int @sfsdf123132 = 123;
int 中国 = 123;
int _sss = 123;
//编译不通过
int @12sfsdf = 123; 

2.pascal命名法(帕斯卡命名法):

帕斯卡命名法又叫大驼峰命名法,是把多个单词组成的变量命名时,把所有单词的首字母都写成大写。以下是例子:

int StudentName=0;

3.Camel命名法(驼峰命名法):

驼峰命名法又叫做小驼峰命名法,是指把多个单词组成变量名时,把第一个单词的首字母大写,后续的都小写。下面是例子:

int studentName=0;

值类型

值类型一般是放在栈中,派生自System.Object》ValueType

  • 数值类型:
    1. 整 型:sbyte(System.SByte的别名),short(System.Int16),int(System.Int32),long (System.Int64),byte(System.Byte),ushort(System.UInt16),uint (System.UInt32),ulong(System.UInt64),char(System.Char);
    2. 浮点型:float(System.Single),double(System.Double);
    3. 用于财务计算的高精度decimal型:decimal(System.Decimal)。
  • bool型:bool(System.Boolean的别名);
  • 用户定义的结构体(派生于System.ValueType)。
  • 枚举:enum(派生于System.Enum);
  • 可空类型(派生于System.Nullable泛型结构体,T?实际上是System.Nullable的别名)。

1.13个基础数据类型

基础数据类型是运行时的类型
13个基础类型包括了

//整型
sbyte
byte

short
ushort

int
uint

long
ulong

//浮点型
float
double


decimal //decimal类型

char //字符型
bool //bool类型

2.枚举类型

继承:Object》ValueType》Enum
枚举类型是一中特殊的结构类型
定义一个枚举类型

    /// <summary>
    /// 查找方式
    /// </summary>
    public enum Sort
    {
        /// <summary>
        /// 倒数第几个
        /// </summary>
        desc = 0,
        /// <summary>
        /// 正数第几个
        /// </summary>
        asc=1,
    }

3.结构类型

基本类型在C#中的表现形式也是结构类型
所有的结构都默认继承了ValueType,对的这是一个类,也就是说所有的结构都是有继承的,继承了ValueType,也是因为这样,所以结构不再能继承类,只能继承接口,因为C#是单继承的。

引用类型

C#有以下一些引用类型:

  • 数组(派生于System.Array)
  • 用户用定义的以下类型:
    1. 类:class(派生于System.Object);
    2. 接口:interface(接口不是一个“东西”,所以不存在派生于何处的问题。Anders在《C# Programming Language》中说,接口只是表示一种约定[contract]);
    3. 委托:delegate(派生于System.Delegate)。
  • object(System.Object的别名);
  • 字符串:string(System.String的别名)。

字面值

一般是指给变量赋的值,一般情况下的话,有些时候需要赋值的时候加上特殊的符号。


bool isOk=true;
int intNum=0;
uint uintNum=0(u);//不能为负数
long lNum=0;
ulong ulNum=0(u/ul/lu);
float f=0f;
double d=0d;
decimal d=0m;
char c='';
string s="";

名称空间

在C#中名称空间一般用于逻辑上的代码隔离,在同一个命名空间之下你不能创建同一个名称的类。

类型转换

在C#中,从一个变量类型转换成另一个变量类型就叫做类型转换,一般有隐式转换、显示转换。

1.隐式转换

一般是由系统完成的,不需要自己特别的声明。
就数值类型而言,一般情况下,从值范围小的数据类型,给值范围类型大的数据类型赋值,这个时候可以使用隐式转换,不用人工处理。

int i=100;
double i1=i;//这里的类型转换就是隐式转换

2.显示转换

这个是需要人工干预的类型转换
从值范围小的数据类型给值范围大的数据类型赋值,需要显示转换。强制类型转换需要注意数据丢失的情况。

double d=100d;
float f=(float)d;//这里是显示类型转换。

double a=100.90;
int b=(double)a;//i这里会出现丢失后面的小数点后的数据的情况
Console.WriteLine(b);//这里输出的是100;

表达式和语句

表达式由操作数 (operand) 和运算符 (operator) 构成。表达式的运算符指示对操作数适用什么样的运算。运算符的示例包括+、-、*、/ 和 new。操作数的示例包括文本、字段、局部变量和表达式。

当表达式包含多个运算符时,运算符的优先级 (precedence) 控制各运算符的计算顺序。例如,表达式 x + y * z 按 x + (y * z) 计算,因为 * 运算符的优先级高于 + 运算符。

大多数运算符都可以重载 (overload)。运算符重载允许指定用户定义的运算符实现来执行运算,这些运算的操作数中至少有一个,甚至所有操作数都属于用户定义的类类型或结构类型。

运算符

1.逻辑运算符

在C#中有逻辑与(&)、逻辑或(|)、逻辑非(!)
1.逻辑与用来判断两个bool类型的数据是否两个都为true

Console.WriteLine(true&true);//返回true
Console.WriteLine(false&true);//返回true

2.逻辑或是用来判断两个bool类型的数据是否有一个为true

Console.WriteLine(true|false);//返回true
Console.WriteLine(false|false);//返回false

3.逻辑非取一个bool类型的反值

Console.WriteLine(!true);//返回false

2.数学运算符

一般有一元运算符、二元运算符、三元运算符等。

一般数学运算符与普通数学上的运算符差不多,例如加减乘除等二元运算符,与数学上一致,只是需要注意需要特别注意下,他会根据具体的操作符的数据类型来有不同的值。

3.赋值运算符

一般常用的赋值运算符就是: =。除此之外还包括了

*=//赋予左侧的变量=左侧的变量*右侧的变量
%=//赋予左侧的变量=左侧的变量%右侧的变量
-=//赋予左侧的变量=左侧的变量-右侧的变量
+=//赋予左侧的变量=左侧的变量+右侧的变量

4.运算符的优先级

一般情况下,一元运算符>二元运算符>三元运算符

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值