1、Console.ReadKey()只读取一个字符,程序就结束,其参数有两种,一个是无参,一个只能是bool型的(true和false),
其中true表示读取用户的输入然后显示在屏幕上,false表示读取用户输入但不将用户输入字符显示在屏幕上,此功能可以用来输入密码,安全性高。
class Program
{
static void Main(string[] args)
{
Console.ReadKey(true);
Console.WriteLine(GetPassword (2));
}
static string GetPassword(int length)
{
string password = "";
for (int i = 0; i < length; i++)
{
ConsoleKeyInfo cki=Console.ReadKey(true);//获得用户输入的字符,保存在对象cki中
password += cki.KeyChar;//将用户输入的字符转换出来并连接到password中
Console.WriteLine("*");//输出与密码等长的*
其中true表示读取用户的输入然后显示在屏幕上,false表示读取用户输入但不将用户输入字符显示在屏幕上,此功能可以用来输入密码,安全性高。
class Program
{
static void Main(string[] args)
{
Console.ReadKey(true);
Console.WriteLine(GetPassword (2));
}
static string GetPassword(int length)
{
string password = "";
for (int i = 0; i < length; i++)
{
ConsoleKeyInfo cki=Console.ReadKey(true);//获得用户输入的字符,保存在对象cki中
password += cki.KeyChar;//将用户输入的字符转换出来并连接到password中
Console.WriteLine("*");//输出与密码等长的*
}//for循环遍历所给的密码长度并保存其每一个输入字符到password
Console.ReadLine();//加此行代码能显示完输入的所有字符的长度
return password;
}
}
2、namespace、命名空间类、字段都可以嵌套,但方法不能嵌套
Console.ReadLine();//加此行代码能显示完输入的所有字符的长度
return password;
}
}
2、namespace、命名空间类、字段都可以嵌套,但方法不能嵌套
3、Console.Beep() 通过控制台扬声器播放提示音(蜂鸣),其参数有两种,一种是没有参数,一种是形如Console.Beep(2000,1000),
前面的2000表示音色音调,后面的1000表示持续的时间
前面的2000表示音色音调,后面的1000表示持续的时间
弹钢琴小程序:
while (true)
{
Console.ResetColor();//重置背景颜色
ConsoleKeyInfo cki = Console.ReadKey();//读取用户输入的一个字符并返回,用cki对象保存,类型是 ConsoleKeyInfo
int num = int.Parse(cki.KeyChar.ToString());//将用户输入的字符转换为int类型,int.Parse的参数必须是string类型
while (true)
{
Console.ResetColor();//重置背景颜色
ConsoleKeyInfo cki = Console.ReadKey();//读取用户输入的一个字符并返回,用cki对象保存,类型是 ConsoleKeyInfo
int num = int.Parse(cki.KeyChar.ToString());//将用户输入的字符转换为int类型,int.Parse的参数必须是string类型
Console.Beep(num * 1000, 1000);
Console.BackgroundColor = (ConsoleColor)num;//将num转换成枚举类型ConsoleColor
for (int i = 0; i < num; i++)
{
Console.Write(" ");
}//根据num的值横向输出条形
Console.WriteLine();//执行完毕换行
//Console.BackgroundColor = ConsoleColor.Red;//ConsoleColor是个枚举类型的,不同颜色用不同的数值表示
}
4、微软的数据类型:1)内置数据类型(如int或char) 2)用户定义数据类型(如class或interface) 3)匿名类型
变量 常量 只读字段(只能在类里出现):变量与只读字段是非静态的,常量是静态的,
在类中静态的成员是属于类的,非静态的成员是属于对象的。
可以用类名.常量直接访问静态成员,通过对象名.变量名或只读字段来访问非静态成员,如果在变量前加static变为静态成员就可以直接用类名加点访问。
只读字段是该对象中的常量,在该对象中一成不变;而常量是在整个类中都不会改变。
class Program
{
int a = 1;
const int b=23;
readonly int c = 39;
static void Main(string[] args)
{
Console.WriteLine (Program.b);//b是静态成员,直接用类名.常量名访问
Program p = new Program();//实例化类的一个对象p
Console.WriteLine (p.a);//a和c都是非静态成员,用对象名p.变量名访问
}
Console.BackgroundColor = (ConsoleColor)num;//将num转换成枚举类型ConsoleColor
for (int i = 0; i < num; i++)
{
Console.Write(" ");
}//根据num的值横向输出条形
Console.WriteLine();//执行完毕换行
//Console.BackgroundColor = ConsoleColor.Red;//ConsoleColor是个枚举类型的,不同颜色用不同的数值表示
}
4、微软的数据类型:1)内置数据类型(如int或char) 2)用户定义数据类型(如class或interface) 3)匿名类型
变量 常量 只读字段(只能在类里出现):变量与只读字段是非静态的,常量是静态的,
在类中静态的成员是属于类的,非静态的成员是属于对象的。
可以用类名.常量直接访问静态成员,通过对象名.变量名或只读字段来访问非静态成员,如果在变量前加static变为静态成员就可以直接用类名加点访问。
只读字段是该对象中的常量,在该对象中一成不变;而常量是在整个类中都不会改变。
class Program
{
int a = 1;
const int b=23;
readonly int c = 39;
static void Main(string[] args)
{
Console.WriteLine (Program.b);//b是静态成员,直接用类名.常量名访问
Program p = new Program();//实例化类的一个对象p
Console.WriteLine (p.a);//a和c都是非静态成员,用对象名p.变量名访问
}
}
5、命名规则:不用汉字的原因是让程序全球化,以免在改变坏境时出现乱码的状况。
常见的命名法有:匈牙利命名法:基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分;
驼峰命名法:骆驼式命令法,正如它的名称所表示的那样,是指混合使用大小写字母来构成变量和函数的名字。例如,下面是分别用
骆驼式命名法和下划线法命名的同一个函数:
printEmployeePaychecks();
print_employee_paychecks();
帕斯卡命名法:帕斯卡命名法是在命名的时候将首字母大写,如:程序代码public void DisplayInfo(); string UserName;
二者都是采用了帕斯卡命名法。
在C#中,以帕斯卡命名法和骆驼命名法居多。
常见的命名法有:匈牙利命名法:基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分;
驼峰命名法:骆驼式命令法,正如它的名称所表示的那样,是指混合使用大小写字母来构成变量和函数的名字。例如,下面是分别用
骆驼式命名法和下划线法命名的同一个函数:
printEmployeePaychecks();
print_employee_paychecks();
帕斯卡命名法:帕斯卡命名法是在命名的时候将首字母大写,如:程序代码public void DisplayInfo(); string UserName;
二者都是采用了帕斯卡命名法。
在C#中,以帕斯卡命名法和骆驼命名法居多。
6、值类型和引用类型:所有的值类型本质上都是结构体,都存放在线程堆栈中(先进后出);引用类型本质上都是类,数据都存放在托管堆中()。
其中简单类型 数组类型 string都是内置的数据类型,(注:string是引用类型)其他的都是自定义的类型。所有的方法都存放在类中,当定义一个对象时再访问它,
这样节省空间,不需要定义一个对象就写一个方法;而所有的字段都存放在其对应的对象中,因为实例化的类的对象可以有很多个,其字段也可以有不同的值,
这样将字段放在实例化的对象中可以避免其他对象任意修改和访问该字段。
7、var定义变量:只能出现在方法内部,没有参数也没有返回值,例实例化类的对象时var Program=new Program();在实例化时系统会自动识别其是Program
给int类型加一个?可以给其赋null值,为了统一使用 int? b = null;
给int类型加一个?可以给其赋null值,为了统一使用 int? b = null;
8、装箱和拆箱:装箱是将值类型转换成引用类型的过程,拆箱是将引用类型转换成值类型的过程,两者是相反的。但是拆箱中,如果装的时候是整型拆的时候也必须
是整型,但是可以将拆完后的结果赋给其他类型,在C#编程中尽量避免发生装箱和拆箱,必要的时候可以做类型转换。
9、Parse类型和Convert.To类型:只能把string类型转换成其他类型,所有的类型都有tostring(),除了string剩下的简单类型都有Parse(),
bool值除了0是false剩下的都是true
是整型,但是可以将拆完后的结果赋给其他类型,在C#编程中尽量避免发生装箱和拆箱,必要的时候可以做类型转换。
9、Parse类型和Convert.To类型:只能把string类型转换成其他类型,所有的类型都有tostring(),除了string剩下的简单类型都有Parse(),
bool值除了0是false剩下的都是true
转载于:https://blog.51cto.com/fayling/610349