一、变量和表达式
使用#region和#endregion定义可以展开和折叠的代码区域的开头和结尾(以#开头的任意关键字实际上是一个预处理指令,严格来说并不是C#关键字)
1.整数类型
包括:
类型 | 别名 | 允许的值 |
sbyte | System.SByte | -128 ~ 127 |
byte | System.Byte | 0 ~ 255 |
short | System.Int16 | -32768 ~ 32767 |
ushort | System.UInt16 | 0 ~ 65535 |
int | System.Int32 | -2147483648 ~ 2147483647 |
uint | System.UInt32 | 0 ~ 4294967295 |
long | System.Long64 | -9223372036854775808 ~ 9223372036854775807 |
ulong | System.UInt64 | 0 ~ 18446744073709551615 |
2.浮点类型
包括:
float,double,decimal
3.文本和布尔型
包括:
char,string,bool
4.简单类型变量的使用:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Ch03Ex01
{
class Program
{
static void Main(string[] args)
{
int myInteger;
string myString;
myInteger = 17;
myString = "\"myInteger\" is";//当赋予字符串本身存在双引号时,需要利用\来表示转义字符,避免出现错误
Console.WriteLine($"{myInteger },{myString },{myInteger }");//$"{}"也是一种插入字符串的方式 {}内的所有字面值都会被输出
Console.WriteLine(myString, myInteger);//这样也可以直接输出变量的值
Console.ReadKey();
}
}
}
5.变量的命名规则:
驼峰式命名法:又叫小驼峰式命名法,第一个单词首字母小写,后面其他单词首字母大写。
ex:
int myAge;
char myName[10];
float manHeight;
Pascal Casing:在命名方法以及具有公共访问权限的类时进行全大写命名。
6.字符串字面值:
转义序列 | 产生的字符 | 字符的Unicode值 |
---|---|---|
\' | 单引号 | 0x0027 |
\'' | 双引号 | 0x0022 |
\\ | 反斜杠 | 0x005C |
\0 | null | 0x0000 |
\a | 警告(产生蜂鸣) | 0x0007 |
\b | 退格 | 0x0008 |
\f | 换页 | 0x000C |
\n | 换行 | 0x000A |
\r | 回车 | 0x000D |
\t | 水平制表符 | 0x0009 |
\v | 垂直制表符 | 0x0008 |
7.转义序列也可以等价于:\ + u +四位的十六进制值,例如\u0027 相当于一个单引号;
8.一字不变指定字符串:@字符 + 字符串,例如@"Benjamin's string"。
一字不变字符串在文件名中非常有用,因为文件名中包含了大量的反斜杠字符:
"C:\\Temp\\MyDir\\MyFile.doc"
@"C:\Temp\MyDir\MyFile.doc"
9.字符串是引用类型,而其他类型均为数值类型,因此字符串也可以被赋予null值,表示字符串变量不引用字符串或其他任何东西。
二、表达式:
1.数学运算符
主要包括:+ - * / %
这些运算符在作为二元运算符时,执行相应的加减乘除功能,整型数相除与浮点数相除的结果并不相同;当+ -作为一元运算符,如var1 =+ var2;它对结果并没有影响,不会改变任何数值,这个运算符最有用的作用时可以定制相关的操作,主要应用于运算符的重载;var1 =- var2; 等价于 var1 = var2 - 1;。
注意:对布尔值使用数学运算符时,编译器会报错,对两个字符型数据使用数学运算符时,相当于是将两个char型变量转变为int型,然后再进行操作,最终得到的也是一个int型(隐式转换过程)。同时"+"可以作为字符串的连接运算符,将两个字符串进行连接。
2.递增递减运算符
主要包括:++ --
使用递增递减运算符可以简化表达式形式,但是使用时需要注意运算符与变量的位置。
3.赋值运算符
主要包括:= += -= *= /=
赋值运算符会将运算符左边的值带入表达式中进行计算:
var1 += var2;
等价于:
var1 = var1 + var2;
与"+"运算符一样,"+="运算符也可以应用于两个字符串之间的连接。
4.字符串的优先级问题:
前缀的"++""--"和用作一元运算符时的"+""-"
优先级高于
数学运算符"*""%""/"
高于
"+""-"
高于
赋值运算符
高于
"++""--"做后缀
三、名称空间
如果一个名称空间中的代码需要使用在另一个名称空间中定义的名称,就必须包括对该名称空间的引用,限定名称在不同的名称空间级别之间使用句点字符(.),如:
super.smashing.great
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Ch03Ex02
{
class Program
{
static void Main(string[] args)
{
double firstNumber, secondNumber;
string userName;
Console.WriteLine("Enter your name:");
userName = Console.ReadLine();//用户输入数据
Console.WriteLine($"Welcome {userName}!");
Console.WriteLine("Now give me a number:");
firstNumber = Convert.ToDouble(Console.ReadLine());//将输入的数据转为double类型,string转int:ToInt32
Console.WriteLine("Now give me another number:");
secondNumber = Convert.ToDouble(Console.ReadLine());
Console.WriteLine($"The sum of {firstNumber} and {secondNumber} is " +
$"{firstNumber + secondNumber}.");//这里的 + 号是一个string operator,可以将两个字符串进行连接
Console.WriteLine($"The result of subtracting {secondNumber} from " +
$"{firstNumber} is {firstNumber - secondNumber}.");
Console.WriteLine($"The product of {firstNumber} and {secondNumber} " +
$"is {firstNumber * secondNumber}.");
Console.WriteLine($"The result of dividing {firstNumber} by " +
$"{secondNumber} is {firstNumber / secondNumber}.");
Console.WriteLine($"The remainder after dividing {firstNumber} by " +
$"{secondNumber} is {firstNumber % secondNumber}.");
Console.ReadKey();
}
}
}