这篇随笔主要用来记录我在C#学习过程做的笔记,算作是一门课程中的小知识点吧。

1. 变量和表达式                        

1.1 如何在输出带有引号(英文双引号、英文单引号)以反及斜杠(“\”)等字符?

(1)使用转义序列

例如,要求输出:He's a "dog"! 这里面包含了英文字符单引号后双引号,利用转义序列 “ \' ” 和 “ \" ” 对它们进行处理:

 Console.WriteLine("He\'s a \"dog\"!");

当然也可以用“\”加上述字符的Unicode值来实现,例如:“ ' ”的Unicode值为0x0027,“ " ”的Unicode值为0x0022

 Console.WriteLine("He\u0027s a \u0022dog\u0022!");

该语句与上面的语句等价。

再例如,要求输出一个路径名:C:\xyz\a,按照上面转义字符的用法,“\”的Unicode值为0x005C

 Console.WriteLine("C:\\xyz\\a");
Console.WriteLine("C:\u005Cxyz\u005Ca");

两个语句等价。

(2)使用“@”字符

对于上面使用转义序列输出特殊字符,语句的可读性很差,这里使用@字符简化语句,如上面的路径名:

 Console.WriteLine(@"C:\xyz\a");

但是在@后接的输出字符串中对双引号有限制:如:输出“ "Dog" ”,利用@字符会失效:

 Console.WriteLine(@" "Dog" "); 

该语句在编译时会出现错误。并且在@后接的输出字符串中就不能在用转移序列了,即下面这条语句也是编译不通过的

 Console.WriteLine(@" \"Dog\" "); 

但是@字符对输出单引号是没有影响的,比如

 Console.WriteLine(@" He's name is X. ");

1.2 char型变量做运算?

两个char型变量能否做加减运算?结果又是什么呢?

例如:

 char a = 'A';
char b = 'B';
Console.WriteLine(a + b);

上述代码是正确的,输出结果为:

char型变量实际上存储的是数字(上面例子中‘a’的ASCII码值为65,‘B’为66),把两个char型变量相加(实际为两个ASCII码相加),也是得到一个数字(结果类型为int型)。同理,两个char型变量也是按照如此规则做减法、乘法和除法运算。


1.3 运算符“++”和“--”所在位置对变量存储值的影响?

例如:

 int val1 = , val2 = ;
int val3, val4;
val3 = val1++;
val4 = ++val2;
Console.WriteLine("val1 = {0}, val2 = {1}", val1, val2);
Console.WriteLine("val3 = {0}, val4 = {1}", val3, val4);

输出结果为:

val1 = 3,  val2 = 6

val3 = 2,  val2 = 6

从结果可以看出,运算符“++”总是将变量的值增加了1,但是它的位置决定了其发挥作用的时间。在变量左边时,它是在变量参与其他运算之前将变量值加1,在变量右边时,它是在变量参与其他运算之后才将变量值加1.同理,“--”的作用也是如此。


C#基础知识学习手记1的更多相关文章

  1. GCC基础知识学习

    GCC基础知识学习 一.GCC编译选项解析 常用编译选项 命令格式:gcc [选项] [文件名] -E:仅执行编译预处理: -S:将C代码转换为汇编代码: -c:仅执行编译操作,不进行连接操作: -o ...

  2. (转)Linux基础知识学习

    Linux基础知识学习 原文:http://blog.csdn.net/ye_wei_yang/article/details/52777499 一.Linux的磁盘分区及目录 Linux的配置是通过 ...

  3. Objective-c基础知识学习笔记

    Objective-c基础知识学习笔记(一) 一直有记录笔记的习惯.但非常久没分享一些东西了,正好上半年開始学习IOS了,如今有空写点.因开发须要,公司特意为我们配置了几台新MAC.还让我们自学了2周 ...

  4. AXAJ基础知识学习

    AXAJ基础知识学习 博客首页 Ajax简介 ajxa全称是Asynchronous Javascript And XML ,就是异步的JS 和XML 通过Ajax可以再浏览器中向服务器发送异步请求, ...

  5. Vue2基础知识学习

    Vue2基础知识学习 01.初识 new Vue({ el: '#root', //用于指定当前Vue实例为哪个容器服务,值通常为css选择器符 data () { return { } } }); ...

  6. C#基础知识学习

    C#基础知识整理 学习地址:http://blog.csdn.net/column/details/csarp.html

  7. 韩天峰博客 php基础知识学习记录

    http://rango.swoole.com 写好PHP代码真的不容易,给大家几个建议: 慎用全局变量,全局变量不好管理的,会导致你的代码依赖于全局变量,而耦合度太高. 一定不要复制粘贴代码,可重用 ...

  8. 〖前端开发〗HTML/CSS基础知识学习笔记

    经过一天的学习,把慕课网的HTML/CSS基础知识学完了,笔记整理: 1. 文件结构: HTML文件的固定结构: <html> <head>...</head> & ...

  9. Linq的简介和基础知识学习

    学习LINQ之前,我们要知道LINQ是干什么,解决什么问题的,怎样学习? 一.LINQ简介 1.什么是LINQ? 什么是LINQ?LINQ中文翻译为语言集成查询(Language Integrated ...

随机推荐

  1. uva 1475 - Jungle Outpost

    半平面交,二分: 注意,题目的点是顺时针给出的: #include<cstdio> #include<algorithm> #include<cmath> #def ...

  2. 1182-IP地址转换

    描述 给定一个点分十进制的IP地址,把这个IP地址转换为二进制形式. 输入 输入只有一行,一个点分十进制的IP地址 包括四个正整数,用三个.分开,形式为a.b.c.d 其中0<=a,b,c,d& ...

  3. PHP 系统常量及自定义常量

    __FILE__ 这个默认常量是 PHP 程序文件名.若引用文件 (include 或 require)则在引用文件内的该常量为引用文件名,而不是引用它的文件名. __LINE__ 这个默认常量是 P ...

  4. 【转】DCX (数独-八皇后问题)

    还没学会,先转了再说.. 出处:http://grenet.cnblogs.com/ 跳跃的舞者,舞蹈链(Dancing Links)算法--求解精确覆盖问题   精确覆盖问题的定义:给定一个由0-1 ...

  5. java区分大小写,使用TAB进行缩进,public类名只能有一个,而且文件名与类名保持一致.

    java的类必须大写 java区分大小写,使用TAB进行缩进,public类名只能有一个,而且文件名与类名保持一致. 在dos用上下箭头,调用已用过的命令

  6. JavaWeb学习总结(十三)——使用Session防止表单重复提交

    在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交. 一.表单重复提 ...

  7. ANDROID_MARS学习笔记_S02_006_APPWIDGET3_AppWidget发送广播及更新AppWidget

    一.简介 二.代码1.xml(1)example_appwidget.xml <?xml version="1.0" encoding="utf-8"?& ...

  8. ANDROID_MARS学习笔记_S01原始版_016_Service

    一.代码1.xml(1)main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayo ...

  9. float 和 real

      用于表示浮点数值数据的大致数值数据类型.浮点数据为近似值:因此,并非数据类型范围内的所有值都能精确地表示. 注意: real 的 SQL-92 同义词为 float(24). 数据类型 范围 存储 ...

  10. Linux下Apache与Tomcat的完全分布式集群配置(负载均衡)

    最近公司要给客户提供一套集群方案,项目组采用了Apache和Tomcat的集群配置,用于实现负载均衡的实现. 由于以前没有接触过Apache,因此有些手生,另外在网上搜寻了很多有关这方面的集群文章,但 ...