# C# 微软官方文档

# C# 文档

# C# 菜鸟教程

# C# 教程

# 开发环境与学习资料

  • 集成开发环境:IDE(Integrated Development Environment)

  • 编辑工具:VS2019(Visual Studio 2019)or VS2022

    安装组件: .net 桌面开发

🕮 📕📘📙📔

  • 学习视频汇总

  • 语雀刘铁猛笔记

  • C# 语言定义文档(Language Specification)

# VS 2019 相关配置

  • 设置主题:工具 ➡ 选项 ➡ 环境 ➡ 常规 ➡ 颜色主题

  • 设置字号:

    工具 ➡ 选项 ➡ 环境 ➡ 字体和颜色(JetBrains Mono 、Consolas)

    或者 ctrl + 鼠标滑轮

  • 显示行号:工具 ➡ 选项 ➡ 文本编辑器 ➡ C# ➡ 行号

😀

  • Solution:针对客户需求的总的解决方案
  • Project:解决具体的某个问题

# C# 编写的各类应用程序

1、Console

新建项目 ➡ 控制台应用(.NET Framework)

Console.WriteLine("hello world");

2、WPF(Windows Presentation Foundation)*

新建项目 ➡ WPF 应用(.NET Framework)➡ 添加 textbox 和 button 控件,添加事件名 ➡ 双击 button 按钮

namespace WpfTest
{
  /// <summary>
  /// MainWindow.xaml 的交互逻辑
  /// </summary>
  public partial class MainWindow : Window
  {
    public MainWindow()
    {
      InitializeComponent();
    }
    private void buttonSayHello_Click(object sender, RoutedEventArgs e)
    {
      textBoxShowHello.Text = "hello world";
    }
  }
}

3、Windows Forms(Old)

新建项目 ➡ Windows 窗体应用(.NET Framework)➡ 添加 textbox 和 button 控件,添加事件名 ➡ 双击 button 按钮

namespace WinformHello
{
  public partial class Form1 : Form
  {
    public Form ()
    {
      InitializeComponent();
    }
    private void buttonSayHello_Click(Object sender, EventArgs e)
    {
      textBoxShowHello.Text = "hello world";
    }
  }
}

4、ASP.NET Web Forms(Old)

添加 ASP.NET Web 开发组 ➡ 新建项目 ➡ .NET FrameWork Web

5、ASP.NET MVC(Model-View-Controller)*

  • 分离不同种类的代码

  • 结构清晰,易于维护

6、WCF(Windows Communication Foundation)*

7、Windows Store Application *

8、Windows Phone Application *

9、Cloud(Windows Azure)*

10、WF(Workflow Foundation)

# 编译过程

C# 编译:代码 ➡ 程序集(exe dll)

程序集在运⾏的时候会编译成机器指令( JIT 及时编译)

# 运行

  • 菜单栏启动
  • ctrl + F5

# 输出输入

// 输出
Console.Write(); // 不换行
Console.WriteLine(); // 换行
➡ \n换行符,\表示转义字符
➡ \t制表符,表示tab键
Console.Write("hello \nworld!");
// 字符串格式化输出
int a = 12;
int b = 13;
Console.WriteLine("{0} + {1} = {2}", a, b, a+b);

😀

// 输入
Console.ReadLine();
int strInt = Convert.ToInt32(Console.ReadLine()); // 数据类型转换
Console.WriteLine(strInt + "-");

# $ 和 @ 的用法

  • $ :相当于 String.format 的简写
  • @ :转移字符 \ 保持原意,不要转义,默认的 \ 是作为转义来使用的
string name = "呆呆";
int age = 18;
string str1 = String.Format("My name is {0}, I'm {1} years old.", name, age);
string str2 = $"My name is {name}, I'm {age} years old.";
// C:\Users\Example\Documents\File.txt
string path1 = @"C:\Users\Example\Documents\File.txt";
string path2 = "C:\\Users\\Example\\Documents\\File.txt";

# 快捷键

  • ctrl + k 、ctrl + c:单行注释

  • ctrl + k 、ctrl + u:取消注释

  • ctrl + shift + /:多行注释

  • Home/End:定位光标在最前或最后

  • shift/ctrl:选择

    shift:选择多行代码

  • Page Up/Page Down:翻页

  • F5:开始调试

    ctrl + F5:开始执行(不调试)

  • insert:插入模式和覆盖模式

  • 选中内容 ctrl + k、ctrl + f:代码格式化

  • 输入 cw + 两次 tab:快速输入 WriteLine

  • alt + enter:弹出智能标记

# 注释

单行注释:ctrl + k 、ctrl + c 或者 ctrl + /(可自己设置)
取消注释:ctrl + k 、ctrl + u
多行注释:ctrl + shift + /

# 折叠

#region
#endregion
// 字符串转日期
Convert.ToDateTime("2020-04-21 15:57:32"); //string 格式要求,必须是 yyyy-MM-dd hh:mm:ss