TryParse语句 :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TryParse
{
class Program
{
static void Main(string[] args)
{
int number;
bool b = int.TryParse("123", out number);
Console.WriteLine(b);
Console.WriteLine(number);
Console.ReadKey();
}
}
}
TryParse 类型转换 和 Convert 差不多
都是可以转换的
只不过 convert失败的话就报错
TryParse的话 失败返回 False
bool b = int.TryParse("123", out number);
返回值是bool 类型 讲123转换成整数型 传给 number
C#程序调试:
1.写完这段程序后,想看一下这段程序的执行过程。
2.当你写完这段程序后,发现程序并没有按照你想象的样子去执行。
调试方法:
1.F11逐语句调试(单步调试)
2.F10 逐过程调试
3.断点调试
详细课程:
continue 语句 :
contiue 和 break区别
continue 是 跳出当前循环
break 是 跳出整个循环
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace continue循环
{
class Program
{
static void Main(string[] args)
{
//continue 跳出当前循环
//break 跳出整个循环
while (true)
{
Console.WriteLine("Hello World");
//break
continue;
}
Console.ReadKey();
}
}
}
continue练习:
用while循环 和 continue 实现计算 1-100台之间的除了被7整除之外的所有整数
int sum = 0;
int i = 1;
while (i<=100)
{
if (1 % 7 == 0 == true)
{
i++;
continue;
}
sum = sum + i;
i++;
}
Console.WriteLine(sum);
Console.ReadKey();
三元表达式:
语法:
表达式1?表达式2:表达式3;
表达式1一般为关系表达式。
如果表达式1的值为true,那么表达式2的值就是整个三元表达式的值
如果表达式1的值为false,那么表达式3的值就是整个三元表达式的值
注意:表达式2的结果类型必须跟表达式3结果类型一致,并且也要跟整个三元表达式的结果类型一致
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 三元表达式
{
class Program
{
static void Main(string[] args)
{
//三元表达式
Console.WriteLine("比较两个数的大小用三元表达式");
Console.WriteLine("请输入第一个数字");
int number1 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("请输入第二个数字");
int number2 = Convert.ToInt32(Console.ReadLine());
int max = number1 > number2 ? number1 : number2;
//如果number1 > number2 那么 number1就是整个三元表达式的值
//如果不是,那么number2就是整个三元表达式的值
Console.WriteLine(max);
Console.ReadKey();
}
}
}
//三元表达式
//提示用户输入姓名,名字只要不是绵羊就都提示流氓,用三元表达式
Console.WriteLine("输入姓名,让计算机分析你是不是流氓");
string name = Console.ReadLine();
string result = name == "绵羊" ? "淫才啊" : "流氓啊";
//如果name等于绵羊成立,也就是第一个表达式成立,那么表达式2的值淫才就是整个三元表达式的值
//如果name等于绵羊不成立,也就是第一个表达式不成立,那么表达式3的值流氓啊就是整个三元表达式的值
Console.WriteLine(result);
Console.ReadKey();
Random随机数:
//产生随机数
//1.创建一个能够产生随机数的对象
Random r = new Random();
//2.让产生随机数的这个对象,调用方法来产生随机数
int number = r.Next(1, 10);
Console.WriteLine(number);
Console.ReadKey();
练习:这个人上辈子!!
//输入名字随机显示这个人上辈子是什么样的人
//思路:
//1.创建能够产生随机数的对象
//2.产生随机数(1,7)
Random r = new Random();
while (true)
{
int rnumber = r.Next(1, 7);
Console.WriteLine("请输入一个姓名:");
string name = Console.ReadLine();
switch (rnumber)
{
case 1:
Console.WriteLine("{0},上一辈子是一坨翔",name);
break;
case 2:
Console.WriteLine("{0},上辈子是拉皮条的老鸨子", name);
break;
case 3:
Console.WriteLine("{0},上辈子是抽大烟的", name);
break;
case 4:
Console.WriteLine("{0},上辈子是青楼女子", name);
break;
case 5:
Console.WriteLine("{0},上辈子是吃翔的", name);
break;
case 7:
Console.WriteLine("{0},上辈子是救苦救难的大圣人啊", name);
break;
}
}
常量 const:
const int number = 20; //常量最大的特点就是不能被重新赋值
枚举:
语法:
public enum 枚举名
{
值1,
值2,
值3
......
}
public:访问修饰符。访问权限最高的,公开的公共的,哪都可以访问使用,
enum:关键字,声明枚举的关键字
枚举名:要符合pascal命名的规范
最好将枚举声明到命名空间的下面,类的外面,表示这个命名空间下,所有的类都能使用枚举
枚举就是一个变量类型,只是声明、赋值、使用方式都和其他变量不一样
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 枚举
{
//声明了一个枚举 类型是 Gender类型
public enum Gender
{
男,
女
}
class Program
{
static void Main(string[] args)
{
// 变量类型 变量名 = 值;
Gender gender = Gender.男;
}
}
}
枚举的练习:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 枚举的练习
{
public enum Season
{
春,
夏,
秋,
冬
}
public enum QQstate
{
online,
offline,
leave,
busy,
qme
}
class Program
{
static void Main(string[] args)
{
Season s = Season.春;
QQstate a = QQstate.online;
}
}
}
我们可以将一个枚举类型的变量跟int类型和string类型互相转换
枚举类型默认是和int类型相互兼容的,所以可以通过强制类型转换的语法互相转换
当转换一个枚举中没有的值的时候,不会抛异常,而是直接将数字显示出来
枚举同样也可以跟string类型互相转换,如果将枚举类型转换成string类型,则可以调用 ToString()
如果将字符串转换成枚举类型则需要下面这样的一行代码:
(要转换的枚举值) Enum.Parse(typeof(要转换的枚举类型),"要转换的字符串");
如果转换的字符串是数字,则就算枚举中没有,也不会抛异常
如果要转换的字符串是文本,如果枚举中没有,则会抛异常
所有的类型都能够转换成string类型,调用ToString()
枚举练习:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 枚举和int已经string类型之间的转换
{
public enum QQstate
{
online=1,//枚举默认从0开始,我们给他赋值为1
offline,
leave,
busy,
qme
}
class Program
{
static void Main(string[] args)
{
//枚举练习
//提示用户选择一个在线状态,我们接受,并将油壶的输入转换成枚举类型
//再次打印在控制台上
Console.WriteLine("请选择您的qq在线状态 1——onlibe 2——offline 3——leave 4——busy 5——qme");
string input = Console.ReadLine();
switch (input)
{
case "1": QQstate s1 = (QQstate) Enum.Parse(typeof(QQstate),input);
Console.WriteLine("您选择的在线状态是{0}",s1);
break;
case "2": QQstate s2 = (QQstate)Enum.Parse(typeof(QQstate), input);
Console.WriteLine("您选择的在线状态是{0}", s2);
break;
case "3":
QQstate s3 = (QQstate)Enum.Parse(typeof(QQstate), input);
Console.WriteLine("您选择的在线状态是{0}", s3);
break;
case "4":
QQstate s4 = (QQstate)Enum.Parse(typeof(QQstate), input);
Console.WriteLine("您选择的在线状态是{0}", s4);
break;
case "5":
QQstate s5 = (QQstate)Enum.Parse(typeof(QQstate), input);
Console.WriteLine("您选择的在线状态是{0}", s5);
break;
}
Console.ReadKey();
}
}
}
C# 结构:
可以帮助我们一次性声明多个不同的变量;
语法:
public struct 结构名
{
成员;//字段
}
public 也是可以省略不写的
变量在程序运行期间只能存储一个值,而字段能存储多个值
程序员语法规范: 最好在字段前面加上 _下滑线
结构的练习:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 结构
{
public struct Person
{
public string _name; //这个叫字段
public int _age;
public Gander _gender; //gander 定义的那个枚举类型
//加上public 是为了增加他的访问权限
//否则的话只能在当前页面访问 Person
}
//枚举一个性别
public enum Gander
{
男,
女
}
class Program
{
static void Main(string[] args)
{
//XX大学管理系统
Person zsPerson;
zsPerson._name = "张三";
zsPerson._age = 18;
zsPerson._gender = Gander.女;
Person lsPeoson;
lsPeoson._name = "李四";
lsPeoson._age = 18;
lsPeoson._gender = Gander.男;
Console.WriteLine("姓名:{0} 年龄:{1} 性别:{2}",zsPerson._name,zsPerson._age,zsPerson._gender);
Console.ReadKey();
}
}
}
练习2:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 结构的练习
{
public struct MyColor
{
public int _red;
public int _green;
public int _blue;
}
class Program
{
static void Main(string[] args)
{
//定义一个结构叫MyColor,有三个成员,分别定义为int类型的red,green,blue
//声明一个MyColor类型的变量,并对其成员赋值,使Mycolor可以表示为一个红色
MyColor mc;
mc._red = 255;
mc._green = 0;
mc._blue = 0;
}
}
}
C#数组:
一次性储存个相同类型的变量;
语法:
数组类型[] 数组名 = new 数组类型[数组长度];
如果想要访问到数组中的某一块元素,需要通过这个元素的下标或者索引去访问。
数组的长度一旦固定了,就不能再被改变了;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 数组
{
class Program
{
static void Main(string[] args)
{
//数组类型[] 数组名 = new 数组类型 [数组长度];
int[] nums = new int[10];
//数组的声明方式
int[] numsTwo = {1,2,3,4,5,6};
//利用循环赋值,同样也通过一个循环对数组取值
for (int i = 0; i < nums.Length; i++)
{
nums[i] = i;
}
}
}
}
数组的练习:
练习1 从一个整数中,提取这个数组的 最大的整数,最小的整数,总和和平均值
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 数组的练习
{
class Program
{
static void Main(string[] args)
{
//练习1 从一个整数中,提取这个数组的 最大的整数,最小的整数,总和和平均值
//声明一个int类型的数组,并且随意赋初值
int[] nums = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
//声明变量用于存储
int max = nums[0];
int min = nums[0];
int sum = 0;
for (int i = 0; i < nums.Length; i++)
{
if (nums[i] > max)
{
max = nums[i];
}
if (nums[i] < min)
{
min = nums[i];
}
sum = sum + nums[i];
}
Console.WriteLine("最大值是{0},最小值是{1},最大值是{2},平均值是{3}", max, min,sum,sum/2);
Console.ReadKey();
}
}
}
练习2:数组里面都是人的名字,分割成:例如:老马|老苏|老花|老贾
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 数组的练习
{
class Program
{
static void Main(string[] args)
{
//练习2 数组里面都是人的名字,分割成:例如:老马|老苏|老花|老贾
//老马 老苏 老花 老贾 老刘 老虎 老鸡 老鸭
string[] name = { "老马", "老苏", "老花", "老贾" };
string str = null;
for (int i = 0; i < name.Length-1; i++)
{
str = str+name[i] + "|";
}
Console.WriteLine("{0}", str+name[name.Length-1]);
Console.ReadKey();
}
}
}