1、语句:
(1)if条件语句中的条件与的时候第一个false后面的不执行,或的时候第一个true后面的不执行。
(2)switch语句后面不能放常量。
(3)循环语句有while、do...while、for、foreach。其中foreach循环集合或数组,foreach(var i in arrint)中的i为arrint中的元素不是下标。
用for语句打印日期:class Program
{
static void Main(string[] args)
{
for (DateTime dt = DateTime.Parse("2008-1-1"); dt < DateTime.Parse("2008-3-1");dt = dt.AddDays(1))
{
Console.WriteLine(dt);
}
}
}
(4)跳转语句:break跳出全部循环,Continue跳出本次循环,goto语句直接跳转到标志语句,return结束当前方法下面的语句不再执行,throw抛出异常。
(5)异常处理语句:try...catch try...catch...finally try...finally不管什么时候finally都会执行,即使try或catch语句中有return语句。
(6) Checked和Unchecked语句:Cheched关键字用于对整型算术运算和转换显式启用溢出检查。unchecked 关键字用于取消整型算术运算和转换的溢出检查。
2、运算符:
一元运算符:接受一个操作数的运算符。例:++或new
二元运算符:接受两个操作数的运算符。例:+、-、*、/
三元运算符:接受三个操作数的运算符。例:“?:”是C#中唯一的三元操作符。
3、位运算:& 与、| 或、^ 异或、~ 取补、<< 左移、>> 右移
口诀:与遇0为0 或遇1为1 异或全为0 求补全反转 移位最麻烦除头尾补0
4、表达式:是可以计算且结果为单个值、对象、方法或命名空间的代码片段。
5、string是引用类型为什么使用起来和值类型一样?string和stringBuilder的区别?
答:一个String代表一个不可变的顺序字符集。定义一个String就是不可变的,要是发生改变,就会生成一个新的字符串。
区别:(1)String对象串联操作总是用现有字符串和新数据创建新的对象,而stringBuilder对象维护一个缓冲区,以便容纳新数据的串联,如果有足够空间,新数据将被追加到缓冲区的 末尾;否则,将分配一个新的更大的缓冲区,原始缓冲区中的数据被复制到新的缓冲区,然后将新数据追加到新的缓冲区。
(2)String与StringBuilder对性的串联操作的性能取决于内存分配的发生频率。String串联操作每次都分配内存,而StringBuilder串联操作仅当 StringBuilder 对象缓冲区太小而无法容纳新数据时才分配内存。因此,如果串联固定数量的 String 对象,则 String 类更适合串联操作。这种情况下,编译器甚至会将各个串联操作组合到一个操作中。如果串联任意数量的字符串,则 StringBuilder 对象更适合串联操作;例如,某个循环对用户输入的任意数量的字符串进行串联。
6、程序:自动售货机
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Threading;
using System.Diagnostics;
namespace Sale
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("***********欢迎使用自动售货机!***********");
Console.WriteLine("1、可乐 价格:3元 2、果粒橙 价格:3元 " + "\r\n" + "3、面包 价格:2元 4、火腿肠 价格:1元 " + "\r\n" + "5、退出");
Console.WriteLine("请输入要选物品的代码:");
Sell();
}
static void Sell()
{
switch (Console.ReadLine())
{
case "1":
Console.WriteLine("请放入人民币:");
Goods1(0);
break;
case "2":
Console.Write("请放入人民币:");
Goods2(0);
break;
case "3":
Console.Write("请放入人民币:");
Goods3(0);
break;
case "4":
Console.Write("请放入人民币:");
Goods4(0);
break;
case "5":
Goods5();
return;
}
}
static void Goods1(double money)
{
double money1 = double.Parse(Console.ReadLine())+money;
if (money1 < 3)
{
Sorry();
Goods1(money1);
}
else if(money1>3)
{
double money11=money1-3;
string content = "CreateObject(\"SAPI.SpVoice\").Speak\"" + "操作成功!找您"+money11+"元,请拿好!" + "\"";
File.WriteAllText(Environment.CurrentDirectory + @"/a.vbs", content, Encoding.Default);
Process.Start(Environment.CurrentDirectory + @"/a.vbs");
Console.WriteLine("操作成功!找您{0}元,请拿好!",money11);
Console.WriteLine("如需继续购买,请输入要选物品代码,不需购买请退出:");
Sell();
}
else
{
Handle();
}
}
static void Goods2(double money)
{
double money2 = double.Parse(Console.ReadLine())+money;
if (money2 < 3)
{
Sorry();
Goods2(money);
}
else if (money2 > 3)
{
double money21 = money2 - 3;
string content = "CreateObject(\"SAPI.SpVoice\").Speak\"" + "操作成功!找您" + money21 + "元,请拿好!" + "\"";
File.WriteAllText(Environment.CurrentDirectory + @"/a.vbs", content, Encoding.Default);
Process.Start(Environment.CurrentDirectory + @"/a.vbs");
Console.WriteLine("操作成功!找您{0}元,请拿好!", money21);
Console.WriteLine("如需继续购买,请输入要选物品代码,不需购买请退出:");
Sell();
}
else
{
Handle();
}
}
static void Goods3(double money)
{
double money3 = double.Parse(Console.ReadLine())+money;
if (money3 < 2)
{
Sorry();
Goods3(money);
}
else if (money3 > 2)
{
double money31 = money3 - 2;
string content = "CreateObject(\"SAPI.SpVoice\").Speak\"" + "操作成功!找您" + money31 + "元,请拿好!" + "\"";
File.WriteAllText(Environment.CurrentDirectory + @"/a.vbs", content, Encoding.Default);
Process.Start(Environment.CurrentDirectory + @"/a.vbs");
Console.WriteLine("操作成功!找您{0}元,请拿好!", money31);
Console.WriteLine("如需继续购买,请输入要选物品代码,不需购买请退出:");
Sell();
}
else
{
Handle();
}
}
static void Goods4(double money)
{
double money4 = double.Parse(Console.ReadLine())+money;
if (money4 < 1)
{
Sorry();
Goods4(money);
}
else if (money4 > 1)
{
double money41 = money4 - 1;
string content = "CreateObject(\"SAPI.SpVoice\").Speak\"" + "操作成功!找您" + money41 + "元,请拿好!" + "\"";
File.WriteAllText(Environment.CurrentDirectory + @"/a.vbs", content, Encoding.Default);
Process.Start(Environment.CurrentDirectory + @"/a.vbs");
Console.WriteLine("操作成功!找您{0}元,请拿好!", money41);
Console.WriteLine("如需继续购买,请输入要选物品代码,不需购买请退出:");
Sell();
}
else
{
Handle();
}
}
static void Goods5()
{
Voice("谢谢,欢迎下次光临!");
Console.WriteLine("谢谢,欢迎下次光临!");
}
static void Sorry()
{
Console.WriteLine("对不起,您的金额不够,请继续放入人民币:");
Voice("对不起,您的金额不够,请继续放入人民币:");
}
static void Handle()
{
Voice("操作成功!请拿回您的物品。");
Console.WriteLine("操作成功!请拿回您的物品。");
Console.WriteLine("如需继续购买,请输入要选物品代码,不需购买请退出:");
Sell();
}
static void Voice(string i)
{
string content = "CreateObject(\"SAPI.SpVoice\").Speak\"" + i + "\"";
File.WriteAllText(Environment.CurrentDirectory + @"/a.vbs", content, Encoding.Default);
Process.Start(Environment.CurrentDirectory + @"/a.vbs");
}
}
}