以前学c#只知道它包含控制台程序和windows应用窗体程序,大致知道windows应用窗体程序可以生成。EXE文件,认为控制台只是用来做某些测试用的东西。今天才发现原来控制台的应用并不比windows应用窗体程序的应用少。只是以前不知道罢了,知道控制台程序可以做界面的应用让我眼前为之一震,觉得这个东西比较好玩打消了以前浅显的认识。虽然在做程序时在技术上遇到了很大的困难,但是技术上的问题可以解决,培养对c#的兴趣才是最重要的。有了兴趣才有学习的动力,技术方面可以慢慢的积累,就像做这个计算器的小程序,用控制台实现界面的应用,大的程序比如银行的程序也是用控制台做的。现在对c#的认识还很少,以后要学会慢慢积累。在c#3.0增加的新特性
var和匿名类型:
(1)var:
在方法范围中声明的变量可以具有隐式类型var。隐式类型的本地变量时强制类型变量但由编译器确定类型
var i=10; 在底层编译时会自动解释成int i=10;类似于JavaScript中的var类型。
(2)匿名类型:
匿名类型用来将一组只读属性封装到单个对象中,而无需首先显式定义一个类型,类型名由编译器生成,不能在
源代码级使用,属性的类型由编译器推断。
var v=new {Amount=108,Message="Hello"};
v.Amount和v.Message可以直接调用。
下面是一个用c#控制台做的简单的弹钢琴的小程序:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace shengyin
{
class Program
{
static void Main(string[] args)
{
Console.BackgroundColor = ConsoleColor.Gray;
while(true)
{
ConsoleKeyInfo cki = Console.ReadKey(true);
int num = cki.KeyChar - 48;
Write(num);
// Console.WriteLine(cki.KeyChar);
}
}
static void Write(int yb)
{
switch (yb)
{
case 1:
Console.Beep(14*37, 200);
//Console.WriteLine(cki.KeyChar);
break;
case 2:
Console.Beep(16*37, 200);
Console.BackgroundColor = ConsoleColor.DarkRed;
//Console.WriteLine(cki.KeyChar);
break;
case 3:
Console.Beep(18*37,200);
Console.BackgroundColor = ConsoleColor.White;
// Console.WriteLine(cki.KeyChar);
break;
case 4:
Console.Beep(19*37, 200);
Console.BackgroundColor = ConsoleColor.Yellow;
//Console.WriteLine(cki.KeyChar);
break;
case 5:
Console.Beep(21*37, 200);
Console.BackgroundColor = ConsoleColor.DarkCyan;
//Console.WriteLine(cki.KeyChar);
break;
case 6:
Console.Beep(23*37, 200);
Console.BackgroundColor = ConsoleColor.DarkGreen;
//Console.WriteLine(cki.KeyChar);
break;
case 7:
Console.Beep(25*37, 200);
Console.BackgroundColor = ConsoleColor.DarkMagenta;
//Console.WriteLine(cki.KeyChar);
break;
case 8:
Console.Beep(28 * 37, 200);
Console.BackgroundColor = ConsoleColor.Blue;
//Console.WriteLine(cki.KeyChar);
break;
default:
break;
}
for (int i = 0; i < yb; i++)
{
Console.Write(" ");
}
///Console.WriteLine(yb);
}
}
}