C# 基础之运算符

1、条件运算符
条件运算符(?:)也称为三元(目)运算符,是if...else结构的简化形式,可以嵌套使用。
 

代码如下:

int x = 1; 
string s = x + ""; ; 
s += (x == 1 ? "man" : "men"); 
Console.WriteLine(s);//输出1man

2、checked和unchecked


代码如下:

byte b = 255; 

    b++; 

Console.WriteLine(b.ToString());//输出0

但是由于byte只能包含0-255的数,所以++之后会导致b溢出。因此,如果把一个代码块标记为checked,CLR就会执行溢出检查,如果发生溢出,就抛出来OverflowException异常。
如下所示:


代码如下:

byte b = 255; 
checked 

    b++; 

Console.WriteLine(b.ToString());//抛出OverflowException异常,算术运算导致溢出

如果要禁止溢出检查,可以标记为unchecked:


代码如下:

byte b = 255; 
unchecked 

    b++; 

Console.WriteLine(b.ToString());//输出0,不抛异常

3、is
is运算符可以检查对象是否与特定的类型兼容。“兼容”表示对象是该类型或者派生自该类型。


代码如下:

string i = "hello i..."; 
if (i is object) 

    Console.WriteLine("i is an object...");//执行了这句话 
}

4、as
as运算符用于执行引用类型的显式类型转换(string 为引用类型)。如果要转换的类型与指定的类型兼容,转换就会成功进行;如果类型不兼容,as运算符就会返回Null。


代码如下:

string i = "hello i..."; 
if (i is object) 

    object obj = i as object;//显式类型转换 
    Console.WriteLine(obj is string ? "obj is string..." : "obj is not string...");//输出obj is string... 
}

5、sizeof
sizeof运算符可以确定stack中值类型需要的长度(单位是字节):


代码如下:

int byteSize = sizeof(byte);//输出1 
int charSize = sizeof(char);//输出2 
int uintSize = sizeof(uint);//输出4 
int intSize = sizeof(int);//输出4

6、typeof
typeof运算符常常会跟GetType()方法结合使用,来反射出类的属性、方法等。


代码如下:

Type intType = typeof(int); 
System.Reflection.MethodInfo[] methodInfo = intType.GetMethods(); 
methodInfo.ToList().ForEach(x => Console.WriteLine(x.Name));//反射出int类型的方法名

7、可空类型和运算符
如果其中一个操作数或两个操作数都是null,其结果就是null,如:


代码如下:

int? a = null; 
int? b = a + 4;//b = null 
int? c = a * 5;//c = null

但是在比较可空类型时,只要有一个操作数为null,比较的结果就是false。但不能因为一个条件是false,就认为该条件的对立面是true。如:


代码如下:

int? a = null; 
int? b = -5; 
if (a >= b) 
    Console.WriteLine("a > = b"); 
else 
    Console.WriteLine("a < b");//会输出这句话

8、空合并运算符
例如:


代码如下:

int? a = null;//加问号,是为了能够给Int型赋值为null 
int b; 
b = a ?? 1; 
[csharp] 
Console.WriteLine(b);//输出1 
a = 3; 
b = a ?? 10; 
Console.WriteLine(b);//输出10

(0)

相关推荐

  • c#泛型学习详解 创建线性链表

    术语表 generics:泛型type-safe:类型安全collection: 集合compiler:编译器run time:程序运行时object: 对象.NET library:.Net类库value type: 值类型box: 装箱unbox: 拆箱implicity: 隐式explicity: 显式linked list: 线性链表node: 结点indexer: 索引器 泛型是什么? 很多人觉得泛型很难理解.我相信这是因为他们通常在了解泛型是用来解决什么问题之前,就被灌输了大量的理论

  • C#线性渐变画刷LinearGradientBrush用法实例

    本文实例讲述了C#线性渐变画刷LinearGradientBrush用法.分享给大家供大家参考.具体如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Drawing.Drawing2D;

  • C#数据结构与算法揭秘二 线性结构

    上文对数据结构与算法,有了一个简单的概述与介绍,这篇文章,我们介绍一中典型数据结构--线性结构. 什么是线性结构,线性结构是最简单.最基本.最常用的数据结构.线性表是线性结构的抽象(Abstract), 线性结构的特点是结构中的数据元素之间存在一对一的线性关系. 这 种一对一的关系指的是数据元素之间的位置关系,即: (1)除第一个位置的数据元素外,其它数据元素位置的前面都只有一个数据元素: (2)除最后一个位置的数据元素外,其它数据元素位置的后面都只有一个元素.也就是说,数据元素是一个接一个的排

  • C#中的除法运算符与VB.NET中的除法运算符

    VB.NET中的除法运算符有两个:/(浮点除法).\(整数除法) C#中的除法运算符只有一个:/(除法) VB.NET中的除法运算符与C#中的除法运算符存在很大的差异,使用时注意区分. 关于VB.NET中的除法运算符的介绍(摘自MSDN): /(浮点除法):将两个数相除并返回以浮点数表示的结果. 所得结果的数据类型取决于操作数的类型. 下表显示如何确定结果的数据类型. 操作数数据类型 结果数据类型 两个表达式都是整数数据类型(SByte.Byte.Short.UShort.Integer.UIn

  • C#中矩阵运算方法实例分析

    本文实例讲述了C#中矩阵运算方法.分享给大家供大家参考.具体分析如下: 一.测试环境: 主机:XP 开发环境:VS2008 二.功能: 在C#中实现矩阵运算 三.源代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using Sy

  • C#直线的最小二乘法线性回归运算实例

    本文实例讲述了C#直线的最小二乘法线性回归运算方法.分享给大家供大家参考.具体如下: 1.Point结构 在编写C#窗体应用程序时,因为引用了System.Drawing命名空间,其中自带了Point结构,本文中的例子是一个控制台应用程序,因此自己制作了一个Point结构 /// <summary> /// 二维笛卡尔坐标系坐标 /// </summary> public struct Point { public double X; public double Y; public

  • C#排序算法的比较分析

    本文实例分析了C#的各种排序算法.分享给大家供大家参考.具体分析如下: 首先通过图表比较不同排序算法的时间复杂度和稳定性. 排序方法 平均时间 最坏情况 最好情况 辅助空间 稳定性 直接插入排序 O(n2) O(n2) O(n) O(1) 是 冒泡排序 O(n2) O(n2) O(n) O(1) 是 简单选择排序 O(n2) O(n2) O(n2) O(1) 是 希尔排序 - O(nlog2n)~O(n2) O(nlog2n)~O(n2) O(1) 否 快速排序 O(nlog2n) O(n2)

  • C#运算符重载用法实例分析

    本文实例讲述了C#运算符重载用法.分享给大家供大家参考.具体分析如下: public class Plane { public virtual double TopSpeed() { return 300.0D;} public static bool operator>(Plane one, Plane two) { return one.TopSpeed() > two.TopSpeed(); } public static bool operator<(Plane one, Pla

  • C#图像线性变换的方法

    本文实例讲述了C#图像线性变换的方法.分享给大家供大家参考.具体如下: //定义图像线性运算函数(y=kx+v) private static Bitmap LinearOP(Bitmap a, double k, double v) { Rectangle rect = new Rectangle(0, 0, a.Width, a.Height); System.Drawing.Imaging.BitmapData srcData = a.LockBits(rect, System.Drawi

  • Java编程基础元素-运算符

    目录 1 前言 2 算术运算符 2.1 四则运算 2.2 字符串运算符 2.3 一元运算符 3 关系运算符 4 逻辑运算符 5 位运算符 6 码农洞见 6.1 运算符思维导图 6.2 运算符优先级 1 前言 运算符就是在用变量或常量进行运算时,经常需要用到的运算符,Java 提供了丰富的运算符,可分为4类:算术运算符.关系运算符.逻辑运算符和位运算符. 2 算术运算符 2.1 四则运算 算术运算符的用途类似一般数学运算中的加(+).减(-).乘(×)和除(/)四则运算,是经常使用的数学运算符.这

  • 一起学JAVA基础之运算符

    目录 1运算符 1.1概述 1.2运算符速查表 1.3练习:测试自增自减 1.4练习:测试逻辑运算符 1.5练习:求两数的最大值 1.6练习:求平年闰年 2拓展补充: 2.1总结1:算术运算符之自增自减运算符 2.2总结2:逻辑运算符 2.3总结3:优先级控制 总结 1 运算符 1.1 概述 运算符 用于连接 表达式 的 操作数,并对操作数执行运算. 例如,表达式num1+num2,其操作数是num1和num2,运算符是”+”. 在java语言中,运算符可分为5种类型: 算术运算符.赋值运算符.

  • PHP基础之运算符的使用方法

    1.算术运算符:+.-.*./.%. 2.递增/递减运算符:如$a++,$a--,++$a,--$a. 如: <?php$a=10;$b=5;$c=$a++; //先赋值,后自增.$c=$a,$a=$a+1$d=$b--; //先赋值,后自减.$d=$b,$b=$a-1echo '$a='.$a."||".'$c='.$c.'<br/>'; //$a=11,$c=10echo '$b='.$b."||".'$d='.$d.'<br/>'

  • C# 基础之运算符

    1.条件运算符 条件运算符(?:)也称为三元(目)运算符,是if...else结构的简化形式,可以嵌套使用.  复制代码 代码如下: int x = 1;  string s = x + ""; ;  s += (x == 1 ? "man" : "men");  Console.WriteLine(s);//输出1man 2.checked和unchecked 复制代码 代码如下: byte b = 255;  {      b++;  } 

  • VBS教程:VBScript 基础-VBScript 运算符

    VBScript 运算符VBScript 有一套完整的运算符,包括算术运算符.比较运算符.连接运算符和逻辑运算符. 运算符优先级当表达式包含多个运算符时,将按预定顺序计算每一部分,这个顺序被称为运算符优先级.可以使用括号越过这种优先级顺序,强制首先计算表达式的某些部分.运算时,总是先执行括号中的运算符,然后再执行括号外的运算符.但是,在括号中仍遵循标准运算符优先级. 当表达式包含多种运算符时,首先计算算术运算符,然后计算比较运算符,最后计算逻辑运算符.所有比较运算符的优先级相同,即按照从左到右的

  • Java语法基础之运算符学习笔记分享

    一.运算符 运算符包括下面几种: 算术运算符赋值运算符比较运算符逻辑运算符位运算符三目运算符 最不常用的是位运算符,但也是最接近计算机底层的. 1.算术运算符 (1)+的几种用法:加法.正数.字符串连接符 (2)除法的时候要注意一个问题:整数相除,只能得到整数.要想得到小数,可以将数据自身*1.0,即将数据自身先转换为浮点型. 2.赋值运算符 符号 = += -= *= /= %= 注:=为基本的赋值运算符,其他的为扩展的赋值运算符 面试题: (1)short s=1, s = s+1; (2)

  • Lua基础之运算符的使用示例

    众所周知,C,C++,python等语言都有运算符,那么Lua也不例外,因为它是C写的嘛! Lua分为主要三类运算符,分别是算术运算符,关系运算符,逻辑运算符,还有特殊运算符. 1.算术运算符有: + (加)   -(减)   *(乘)  /(除)   %(取模)   ^(求幂)   -(符号) 来看一个例子:test6.lua num1 = 4 ; num2 = 2 ; print(num1+num2); print(num1-num2); print(num1*num2); print(nu

  • VBS基础篇 - 运算符 图文详解

    VBScript 有一套完整的运算符,包括算术运算符.比较运算符.连接运算符和逻辑运算符. 运算符优先级: 首先计算算术运算符,然后计算比较运算符,最后计算逻辑运算符. 所有比较运算符的优先级相同,即按照从左到右的顺序计算比较运算符. 1.算术运算符 2.比较运算符 3.字符串运算符 4.逻辑运算符 这篇文章就介绍到这,希望大家以后多多支持我们.

  • JavaScript基础之运算符

    目录 1.运算符 总结 1.运算符 运算符(operator)也称操作符,是用于实现赋值.比较和执行算术运算等功能的符号. JavaScript中常用的运算符有: 算术运算符 (+.- .* ./ .%) 递增和递减运算符(++num .num++.--num.num--) 比较运算符 逻辑运算符 赋值运算符 赋值运算: var a = 1; //将右边的值放到左边的变量中 比较运算: 比较运算 - 指的数字的大小比较: > < >= <= 比较运算的结果一定是一个布尔值 逻辑运算

  • Python编程基础之运算符重载详解

    目录 学习目标 一.运算符重载 (一)概述 (二)加法运算重载符 1.概述 2.案例演示 总结 学习目标 1.掌握运算符重载 2.会定制对象字符串的形式 一.运算符重载 (一)概述 运算符重载是通过实现特定的方法使类的实例对象支持Python的各种内置操作 .例如:+运算符是类里提供的__add__这个函数,当调用+实现加法运算的时候,实际上是调用了__add__方法. 方法 说明 何时调用方法 __add__ 加法运算 对象加法:x+y,x+=y __sub__ 减法运算 对象减法:x-y,x

随机推荐