~ 按位求补符;

! 非逻辑运算符;

% 求余运算符;

^ 异或位运算符;

& 且位运算符;

| 或位运算符;

* 既可以用作乘法符号,还可以表示为指针;

+ 表示数学运算符相加;

= 用来表示赋值操作;

\ 用于转义符的开始,如\n表示换行;

” 包裹字符串;

’ 包裹单个字符;

< 逻辑运算符小;

> 逻辑运算符大;

, 用于分隔参数;

. 用于表示对象成员选择器或小数点;

/ 表示除以的数学运算符;

# 用于条件编译或划分代码块。

#if #else

控制预编译的代码;如果不加#,当然就是一个简单的判断语句。

#define

可以使用#define预处理宏定义命令,它的具体作用,就是方便程序段的定义和修改。

#region #endregion

表示一块区域,划分代码块。

? 单个常用于表示可空的值类型,如:int? a=null;

它也可以与很多字符组合使用来表示不同意义。

?? 用于泛型中,在值类型为空时指定默认值,

int a = mynullable ?? 100;

//表示假如mynullable不为空时则将其值赋给a,否则将100赋值给a。

++ 表示自加;

– 表示自减;

&& 表示逻辑关系且;

|| 表示逻辑关系或;

== 表示逻辑关系相等;

>= 表示逻辑运算符大于或等于;

<= 表示逻辑运算符小于或等于;

<< 表示向左移位操作;

>> 表示向右移位操作;

// 表示单行注释;

+=,-=,*=,/=,%=,&=,~=,|= 等,它是一个数自身与某个数做相应数学操作的结果。如:a+=10; 完整形式为:a=a+10;

<> 在泛型中大量使用,它用来包裹类型参数。

() 用于对象中:

1、表示函数参数区域;

2、强制类型转换;

3、制定运算优先级;

{} 用于对象中:

1、表示代码片段作用域;

2、协助c#中某些非凡操作时指定其作用块,如fixed,using等;

3、另外在字符串格式化中,{}和数字组合表示目标字符串中待替换子串位置,如:string.format(“{0} + {1}={3}”, 1,2,3);

[] 这个符号同样常见,它通常有三种使用方式:

1、一个是用于数组中表示索引位置;

2、一种为添加类型的特性时使用;

3、和this要害字组成索引器 this[…];

=> 它是构成lamda表达式的部分,使得匿名函数的书写更加简洁(3.0以后加入)。通常它前面会包含表达式参数部分,后面是表达式的主体部分。

@ 符号的两种用法:

1、常用在字符串开头,它可以告诉编译器忽略转义符;

2、当给变量或属性取名时,变量名(或属性名)与.net中的要害字相同冲突,可以使用“@变量名”来绕过限制。

如:int @int = 123;

//这里@int变量用reflector查看il变量时,看到的是int,而不是@int。

$ 符号的两种用法:
1、该符号在匿名方法中,编译器会偷偷用到。

可以通过查看il代码了解它的命名,但对c#代码是不可见的。机器产生的私有方法并不显示在 intellisense 中,也不能显式地调用它。

2、在调试程序代码时,可以使用到该符号。

比如当catch没有写上exception变量,如:catch{…}

//要想获取exception信息,可以在“即时窗口”或者“监视窗口”输入:$exception 即可。

?和: 符号的组合

这里?和:组成条件表达式,如:int c= a==b?a:b;

<%= 和 %> 组合

用于在html代码中插入.net代码片段。

在aspx.net mvc中这个字符组合非经常见,这点类似以前的asp,这也是有些程序员认为mvc退回到asp时代的一个原因。

<%@ 和 %> 组合

用来表示aspx 2.0的page指令,它一般出现在页面顶部。

在aspx.net页面或用户控件中,有11个指令(注1),指令格式为:<%@ [directive] [attribute=value] %>。

注1:

asp.net中,11个页面或用户控件指令为:

assembly, control, implements, import, master, mastertype, outputcache, page, previouspagetype, reference, register.

C#中的@符号

C#中的@符号其实有很多的用法,我们来看看@有什么神奇之处。

1.限定字符串

用 @ 符号加在字符串前面表示其中的转义字符“不”被处理。

如果我们写一个文件的路径,例如"D:/文本文件"路径下的text.txt文件,不加@符号的话写法如下:

string fileName = “D://文本文件//text.txt”;

如果使用@符号就会比较简单:

string fileName = @“D:/文本文件/text.txt”;

2.让字符串跨行

有时候一个字符串写在一行中会很长(比如SQL语句),不使用@符号,一种写法是这样的:

string strSQL = “SELECT * FROM HumanResources.Employee AS e”
+ " INNER JOIN Person.Contact AS c"
+ " ON e.ContactID = c.ContactID"
+ " ORDER BY c.LastName";

加上@符号后就可以直接换行了:

string strSQL = @“SELECT * FROM HumanResources.Employee AS e
INNER JOIN Person.Contact AS c
ON e.ContactID = c.ContactID
ORDER BY c.LastName”;

3.在标识符中的用法

C#是不允许关键字作为标识符(类名、变量名、方法名、表空间名等)使用的,但如果加上@之后就可以了,例如:

namespace @namespace
…{
class @class
…{
public static void @static(int @int)
…{
if (@int > 0)
…{
System.Console.WriteLine(“Positive Integer”);
}
else if (@int == 0)
…{
System.Console.WriteLine(“Zero”);
}
else
…{
System.Console.WriteLine(“Negative Integer”);
}
}
}
}

C#中的??符号

  • 如果不赋予初值,C#的变量是不允许直接使用的。

  • 但有的时候,让值的类型为空是非常有用的,搜索比如三态bool,其中一个状态便是未给定值。

  • 泛型使用System.NullAble提供了类型值为空的一种方式。System.NullAble nullAbleInt;

  • 因为太常用,C#特意给了一个语法快捷int? nullAbleInt;

  • 简单的例子:

       * int? nVal1 = new int?();* int? nVal2 = null;* int? nVal3 = 3;* Console.WriteLine(nVal1);    // 输出null* Console.WriteLine(nVal2);    // 输出null* Console.WriteLine(nVal3);    //输出3
    
  • 原则:null与任何数数学运算结果为null,null bool 操作任何值结果为 null。

  • 为了减少可空类型的代码量,遇到null的时候C#提供了??操作符来获取如果为空的默认值。

       static void Main(string[] args){    int? nVal1 = null;    int? nVal2 = 5;    // nVal1为空,相乘后还是null,输出0作为默认值    Console.WriteLine(2 * nVal1 ?? 0);    // nVal2非空,取计算值输出,输出10   Console.WriteLine(2 * nVal2 ?? 0);}
    

C#:常用字符整理自用相关推荐

  1. sparksql2.0整理-自用

    各种运算符 算术运算符: | %     取模运算    (求最大公约数)                     | *     乘                    | +     加     ...

  2. JavaScript一些常用 API整理汇总

    JavaScript一些常用 API整理汇总 Array new Set() 数组去重 const arr = [3,4,4,5,4,6,5,7]; console.log(new Set(arr)) ...

  3. scenebuilder各控件属性介绍_C#控件及常用设计整理(三)

    C#控件及常用设计整理(三) 12.CheckedListBox 控件 CheckedListBox控件又称复选列表框,它扩展了ListBox控件,它几乎能完成列表框可以完成的所有任务,并且还可以在列 ...

  4. mysql数据库 常用函数_《MySQL数据库》常用函数整理

    原标题:<MySQL数据库>常用函数整理 以下内容,是我整理出来的比较常用的字符串函数,数值函数,日期函数. 第一类:字符串函数 1.conv(n,from_base,to_base):对 ...

  5. Linux 常用命令整理(Centos7) (时区/正则/sed/htop/screen/ln/awk/……)

    目录 Linux 常用命令整理(Centos7) (附加正则.时区.git等) 一.系统查询常用命令: 1.文件中空格制表符替换sed 2.查看宿主机的用户名密码 3.last .w.lastb 查看 ...

  6. Linux常用指令整理

    Linux常用命令整理 快捷键 [Tab] [Tab] 接在一串指令的第一个字的后面,则为"命令补全": [Tab] 接在一串指令的第二个字以后时,则为"文件补齐&quo ...

  7. CC2017常用快捷键整理

    Photoshop CC2017常用快捷键整理 有点业余时间,整理下工作中常用的ps常用的快捷键,因为现在工作中在用cc2017,是按照这个版本整理的,和其他版本应该会有些许差异,但异曲同工吧! 1. ...

  8. CTF常用知识点整理(个人刷题中整理)

    由于是之前刷题的整理,参照了很多大神的博客,由于过于零碎,没能记录下各位大神的文章出处(以后会提高版权意识的),如有侵权,私聊补加出处或者删文章. 博主是入门半年的萌新,文章不可避免会有很多错误,还请 ...

  9. Python常用字符编码(转)

    Python常用字符编码 字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Code for Information Interchange,美国信息交换标 ...

  10. linux常用命令整理分类

    linux常用命令整理分类 快捷入口 命令帮助指令 开机关机指令 linux 文件权限 linux 文件操作 linux 文件内容查阅 指令和文件的搜索 文件系统 压缩文件 Shell script ...

最新文章

  1. ORACLE JET BASIC TABLE
  2. 生态伙伴 | Tita入驻飞书啦,从目标制定到项目执行,帮你一站式解决!
  3. 对称加密和非对称加密介绍和区别
  4. Silverlight+WCF 新手实例 象棋 主界面-事件区-求和认输(三十二)
  5. 基于外卖评论的舆情风控
  6. Composer update 问题: Could not authenticate against github.com
  7. Android生成Xml文件
  8. vs code gitee使用_实用为王!来看看Gitee上五款新鲜出炉的WebUI组件
  9. 三十一、电子商务分析与服务推荐
  10. 使用cf push命令往CloudFoundry上部署应用的过程分析
  11. html js点击字图片下拉,JavaScript实现文字与图片拖拽效果的方法
  12. 泰安第一中学2021年高考成绩查询,等级考第一天结束 泰安部分考生已完成2021年高考...
  13. 介绍几个专门面向中文的命名实体识别和关系抽取工具
  14. 回放导出数据_王者荣耀本地视频怎么导出MP4格式视频文件?答案在这里
  15. 线性结构 —— 前缀和
  16. android 输出流对象,Android-IO流之对象操作流ObjectInputStream/ObjectOutputStream
  17. moco在接口自动化中的应用
  18. 凸函数、凸规划的定义及学习
  19. Linux下tty串口驱动数据的发送、接收过程源码实例详解
  20. TensorFlow Serving Introduction

热门文章

  1. 4. PHP之活动记录
  2. sql server中截取字符串的常用函数(自己经常到用的时候想不起来所以拿到这里)...
  3. i-83.net quadhost子产品
  4. react中IOS手机里面两个input同时存在时,聚焦focus失效解决办法
  5. grub的boot loader安装在磁盘上的位置
  6. mysql函数之二:left,right,substring,substring_index MySQL截取字符串函数方法
  7. Bamboo 0.2.11 发布,HAProxy 自动配置
  8. @property 参数问题
  9. 转换整形数字为16进制字符串
  10. 【转】java关键字final ,抽象类、接口介绍