C Sharp 的结构有哪些特点

  1. 命名空间实现的分层管理
  2. 命名空间下包含若干个类型(其中最重要的是“类”)
  3. 类下面包含函数或方法
  4. 方法由语句组成

类结构

class 类名
{
成员定义(字段定义、方法定义等)
}

方法和函数的定义

修饰符 返回值类型 方法名(参数列表)
{
声明部分
执行部分
}

C Sharp 关键概念

  1. 程序 Program
    1. 编译出来的最终运行单位 exe
  2. 命名空间 Namespace
    1. 相当于 Java 的包
    2. 用于在同一个程序中定义同一个名称的类
  3. 类型 Type
    1. 分为基础类型:整数、浮点数……
    2. 复杂类型:字符串、用户定义的类
  4. 成员 Member
    1. 在一个类之下的数据(变量)
  5. 程序集 Assembly

C Sharp 程序的开发历程

语句 -> 方法 -> 类 -> 命名空间

C Sharp 数据类型

整数、浮点数、字符、Double

字符串

题目

第一题

接收用户输入,获取两个字符串,将其字符串链接(用 + 运算符),保存在新的变量之中,然后输出。

using System;

namespace Uni_Learning
{
class Program
{
static void Main(string[] args)
{
string firstString; // 用于保存第一个字符串
string secondString; // 用于保持第二个字符串
string combinedString; // 用于保存合并之后的字符串

Console.Write("请输入第一个字符串:");
firstString = Console.ReadLine();

Console.Write("请输入第二个字符串:");
secondString = Console.ReadLine();

// 合并字符串
combinedString = firstString + secondString;

Console.WriteLine("合并之后的字符串为:");
Console.WriteLine(combinedString);
}
}
}

这一题,我们学会了强制转换。然后重点!Console.ReadLine() 接收的是字符串。就算用户输入 16,那也是字符串。

所以我们需要使用 Convert.ToInt32 函数将其转换为整数型。

同样的,Convert 类还包含了一大堆其他的函数可以转换成各种数据:Base64、Float等等

第二题

输入两个数字,比较大小,用方法实现

using System;

namespace Uni_Learning
{
class Program
{
static void Main(string[] args)
{
int x, y;
int max;

Console.Write("请输入第一个数字:");
// 用 Convert.ToInt32 强制转换为整型
x = Convert.ToInt32(Console.ReadLine());
Console.Write("请输入第一个数字:");
y = Convert.ToInt32(Console.ReadLine());

// 调用函数获取最大值
max = Max(x, y);

// 输出结果,有三种方式输出数据:

// 第一种,缺点是容易少写加号或引号
Console.WriteLine("最大值是:" + max + "。");

// 第二种,使用占位符
Console.WriteLine("最大值是:{0}。", max);

// 第三种,使用 C# 6.0 的新特性 String Interpolation
Console.WriteLine($"最大值是:{max}。"); // 这个比较人性化
}

static int Max(int a, int b)
{
if (a > b)
{
return a;
} else
{
return b;
}

// 也可以用三目运算符
return a > b ? a : b;
}
}
}

所以这一题我们学会了字符串链接几种不同的输出

第三题

输入姓名、高数、语文、英语三门课的成绩,显示:XX,你的总成绩为 XX 分,平均成绩为 XX 分。

using System;

namespace Uni_Learning
{
class Program
{
static void Main(string[] args)
{
string name; // 姓名
float math, chinese, english; // 三门课的成绩
float total, avg; // 总成绩,平均分

Console.Write("请输入您的姓名:");
name = Console.ReadLine();

Console.Write("请输入高数成绩:");
// 字符串转换为浮点数 它返回布尔值,也就是说如果用户输入的不是浮点数的话,那么会返回 false,可以配合 if else 进行错误纠正
// 然后第二个参数一定要配上 out。因为他的参数接受的是 ref,也就是这个变量的“地址”
float.TryParse(Console.ReadLine(), out math);

Console.Write("请输入语文成绩:");
float.TryParse(Console.ReadLine(), out chinese);

Console.Write("请输入英文成绩:");
float.TryParse(Console.ReadLine(), out english);

// 取得总分和平均分
total = math + chinese + english;

avg = total / 3;

// 输出结果
// 我用字符串模板的方式进行拼接 $""
Console.WriteLine($"{name},你的总成绩为{total}分,平均成绩为{avg}分");
}
}
}

本日学习

  1. 顺序结构
    1. C# 程序是顺序的、从上往下逐行执行的。
  2. 跳转结构
    1. 当程序遇到函数时,就会暂停在执行到的地方,然后进入函数,当函数执行完毕或者遇到 return 关键字时,继续执行刚刚的代码
  3. 选择语句
    1. if(平时用的比较多,不解释)
    2. switch
      1. 因为有 default,可以用来接收并处理不是预期所要的用户输入等数据。
  4. 循环语句
    1. while
    2. do
    3. for
  5. 跳转语句
    1. goto(不建议使用)
      1. 会照成程序结构被破坏(Spaghetti Code 面条代码)
      2. 降低代码可读性
    2. break
    3. continue
    4. return
    5. throw
      1. 抛出异常