C#:常用字符整理自用
发布日期:2021-06-30 15:42:45 浏览次数:3 分类:技术文章

本文共 3431 字,大约阅读时间需要 11 分钟。

~ 按位求补符;

! 非逻辑运算符;

% 求余运算符;

^ 异或位运算符;

& 且位运算符;

| 或位运算符;

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

+ 表示数学运算符相加;

= 用来表示赋值操作;

\ 用于转义符的开始,如\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);}

转载地址:https://kaisarh.blog.csdn.net/article/details/103076052 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:面向对象(Python):学习笔记之继承
下一篇:C#:$符号和@符号的用法介绍

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月29日 15时34分54秒