C#基础知识学习手记1
这篇随笔主要用来记录我在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的更多相关文章
- GCC基础知识学习
GCC基础知识学习 一.GCC编译选项解析 常用编译选项 命令格式:gcc [选项] [文件名] -E:仅执行编译预处理: -S:将C代码转换为汇编代码: -c:仅执行编译操作,不进行连接操作: -o ...
- (转)Linux基础知识学习
Linux基础知识学习 原文:http://blog.csdn.net/ye_wei_yang/article/details/52777499 一.Linux的磁盘分区及目录 Linux的配置是通过 ...
- Objective-c基础知识学习笔记
Objective-c基础知识学习笔记(一) 一直有记录笔记的习惯.但非常久没分享一些东西了,正好上半年開始学习IOS了,如今有空写点.因开发须要,公司特意为我们配置了几台新MAC.还让我们自学了2周 ...
- AXAJ基础知识学习
AXAJ基础知识学习 博客首页 Ajax简介 ajxa全称是Asynchronous Javascript And XML ,就是异步的JS 和XML 通过Ajax可以再浏览器中向服务器发送异步请求, ...
- Vue2基础知识学习
Vue2基础知识学习 01.初识 new Vue({ el: '#root', //用于指定当前Vue实例为哪个容器服务,值通常为css选择器符 data () { return { } } }); ...
- C#基础知识学习
C#基础知识整理 学习地址:http://blog.csdn.net/column/details/csarp.html
- 韩天峰博客 php基础知识学习记录
http://rango.swoole.com 写好PHP代码真的不容易,给大家几个建议: 慎用全局变量,全局变量不好管理的,会导致你的代码依赖于全局变量,而耦合度太高. 一定不要复制粘贴代码,可重用 ...
- 〖前端开发〗HTML/CSS基础知识学习笔记
经过一天的学习,把慕课网的HTML/CSS基础知识学完了,笔记整理: 1. 文件结构: HTML文件的固定结构: <html> <head>...</head> & ...
- Linq的简介和基础知识学习
学习LINQ之前,我们要知道LINQ是干什么,解决什么问题的,怎样学习? 一.LINQ简介 1.什么是LINQ? 什么是LINQ?LINQ中文翻译为语言集成查询(Language Integrated ...
随机推荐
- Android 用Intent和Bundle传递参数
传递方: //点击btn_sub传递 fieldHeight.getText()和 fieldWeight.getText() private void setListeners() { ...
- VS2010里属性窗口中的生成操作
,无,编译 ,内容 ,嵌入的资源...分别是什么意思? 如果是类.cs文件,就得编译之后你才能使用的.如果是txt,excle这种文件,就属性内容或者资源文件了. @普通用户: 内容(Content) ...
- Sequence Assignments FRM-41830: List of Value contains no entries.
SYMPTOMS ============================================================ GL > Setup > Financials ...
- scaleform 注意事项
在使用 自带的UI .fla 里面的组建时 需要把自己建立的fla进行如下设置. 文件-发布设置-flash-脚本actionscript3.0设置——舞台:自动声明舞台实例
- 关于数组和List之间相互转换的方法
1.List转换成为数组:返回数组的运行时类型.如果列表能放入指定的数组.否则,将根据指定数组.如果指定的数组的元素比列表的多),那么会将存储列表元素的数组. 返回:包含列表元素的list.add(& ...
- bzoj3698
显然是有源有汇有下界最大流,不刷不知道,一刷吓一跳发现了我之前求有源有汇有下界最大流的错误,具体见我那篇介绍有下界的网络流的解题报告(bzoj2502),已经更正 ; type node=record ...
- JQuery对XML文件的操作
xml文件如下: <?xml version="1.0" encoding="utf-8" ?> <Root> <Parent&g ...
- POJ 1860 Currency Exchange + 2240 Arbitrage + 3259 Wormholes 解题报告
三道题都是考察最短路算法的判环.其中1860和2240判断正环,3259判断负环. 难度都不大,可以使用Bellman-ford算法,或者SPFA算法.也有用弗洛伊德算法的,笔者还不会SF-_-…… ...
- Extend ComboGrid Editors for DataGrid Of JQuery EasyUI
在JQueryEasyUI中为DataGrid自定义了一个ComboGrid编辑器.具体方法: 自己写一个扩展 $.extend($.fn.datagrid.defaults.editors, { c ...
- c程序设计语言_习题1-9_将输入流复制到输出流,并将多个空格过滤成一个空格
Write a program to copy its input to its output, replacing each string of one or more blanks by a si ...