C#:常用字符整理自用
~ 按位求补符;
! 非逻辑运算符;
% 求余运算符;
^ 异或位运算符;
& 且位运算符;
| 或位运算符;
* 既可以用作乘法符号,还可以表示为指针;
+ 表示数学运算符相加;
= 用来表示赋值操作;
\ 用于转义符的开始,如\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#:常用字符整理自用相关推荐
- sparksql2.0整理-自用
各种运算符 算术运算符: | % 取模运算 (求最大公约数) | * 乘 | + 加 ...
- JavaScript一些常用 API整理汇总
JavaScript一些常用 API整理汇总 Array new Set() 数组去重 const arr = [3,4,4,5,4,6,5,7]; console.log(new Set(arr)) ...
- scenebuilder各控件属性介绍_C#控件及常用设计整理(三)
C#控件及常用设计整理(三) 12.CheckedListBox 控件 CheckedListBox控件又称复选列表框,它扩展了ListBox控件,它几乎能完成列表框可以完成的所有任务,并且还可以在列 ...
- mysql数据库 常用函数_《MySQL数据库》常用函数整理
原标题:<MySQL数据库>常用函数整理 以下内容,是我整理出来的比较常用的字符串函数,数值函数,日期函数. 第一类:字符串函数 1.conv(n,from_base,to_base):对 ...
- Linux 常用命令整理(Centos7) (时区/正则/sed/htop/screen/ln/awk/……)
目录 Linux 常用命令整理(Centos7) (附加正则.时区.git等) 一.系统查询常用命令: 1.文件中空格制表符替换sed 2.查看宿主机的用户名密码 3.last .w.lastb 查看 ...
- Linux常用指令整理
Linux常用命令整理 快捷键 [Tab] [Tab] 接在一串指令的第一个字的后面,则为"命令补全": [Tab] 接在一串指令的第二个字以后时,则为"文件补齐&quo ...
- CC2017常用快捷键整理
Photoshop CC2017常用快捷键整理 有点业余时间,整理下工作中常用的ps常用的快捷键,因为现在工作中在用cc2017,是按照这个版本整理的,和其他版本应该会有些许差异,但异曲同工吧! 1. ...
- CTF常用知识点整理(个人刷题中整理)
由于是之前刷题的整理,参照了很多大神的博客,由于过于零碎,没能记录下各位大神的文章出处(以后会提高版权意识的),如有侵权,私聊补加出处或者删文章. 博主是入门半年的萌新,文章不可避免会有很多错误,还请 ...
- Python常用字符编码(转)
Python常用字符编码 字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Code for Information Interchange,美国信息交换标 ...
- linux常用命令整理分类
linux常用命令整理分类 快捷入口 命令帮助指令 开机关机指令 linux 文件权限 linux 文件操作 linux 文件内容查阅 指令和文件的搜索 文件系统 压缩文件 Shell script ...
最新文章
- ORACLE JET BASIC TABLE
- 生态伙伴 | Tita入驻飞书啦,从目标制定到项目执行,帮你一站式解决!
- 对称加密和非对称加密介绍和区别
- Silverlight+WCF 新手实例 象棋 主界面-事件区-求和认输(三十二)
- 基于外卖评论的舆情风控
- Composer update 问题: Could not authenticate against github.com
- Android生成Xml文件
- vs code gitee使用_实用为王!来看看Gitee上五款新鲜出炉的WebUI组件
- 三十一、电子商务分析与服务推荐
- 使用cf push命令往CloudFoundry上部署应用的过程分析
- html js点击字图片下拉,JavaScript实现文字与图片拖拽效果的方法
- 泰安第一中学2021年高考成绩查询,等级考第一天结束 泰安部分考生已完成2021年高考...
- 介绍几个专门面向中文的命名实体识别和关系抽取工具
- 回放导出数据_王者荣耀本地视频怎么导出MP4格式视频文件?答案在这里
- 线性结构 —— 前缀和
- android 输出流对象,Android-IO流之对象操作流ObjectInputStream/ObjectOutputStream
- moco在接口自动化中的应用
- 凸函数、凸规划的定义及学习
- Linux下tty串口驱动数据的发送、接收过程源码实例详解
- TensorFlow Serving Introduction
热门文章
- 4. PHP之活动记录
- sql server中截取字符串的常用函数(自己经常到用的时候想不起来所以拿到这里)...
- i-83.net quadhost子产品
- react中IOS手机里面两个input同时存在时,聚焦focus失效解决办法
- grub的boot loader安装在磁盘上的位置
- mysql函数之二:left,right,substring,substring_index MySQL截取字符串函数方法
- Bamboo 0.2.11 发布,HAProxy 自动配置
- @property 参数问题
- 转换整形数字为16进制字符串
- 【转】java关键字final ,抽象类、接口介绍