欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C#基础笔记

程序员文章站 2022-07-08 10:26:54
...

C#概念

.net:一般指.net framework框架,一种平台,一种技术
C#:一种编程语言,可以开发基于.net平台的应用(其它语言也可以开发基于.net 平台的应用,如VB)
java:既是编程语言又是一种平台

.NET都能干什么

桌面应用程序(Winform应用程序)
(.net开发的桌面应用程序叫Winform应用程序)

Internet应用程序ASP.NET
(.net开发的internet应用程序叫ASPNET应用程序)
比如:msdn,csdn,携程,招商银行,证券之里,当当网,京东、汽车之家等

Unity3D游戏开发或者虚拟现实VR

.NET两种交互模式

  • C/S:客户机(Client)/服务器模式(Server)
    如:qq(C/S是Client/Server的缩写。客户端需要安装专用的客户端软件。)
  • B/S:浏览器(Browser)/服务器模式(Server)
    (B/S是Brower/Server的编写,客户机上只要安装一个浏览器)

.NET解决方案结构

解决方案 :公司
项目:部门
类:员工

.cs文件结尾:类文件

Program中各个模块组成

// 引用命名空间
using System;
using System.Collections.Generic;
using System.Linq;

// 项目名 or 命名空间
namespace Application
{	
	// 类
    static class Program
    {	
        // 方法 or 函数
        // Main函数是程序的主入口,被执行代码需要写在Main函数中
        static void Main()
        {
            System.Threading= new System.Globalization.CultureInfo("zh-Hans");
        }
    }
}

解决方案文件夹组成

  • .sln:解决方案文件,里面包含整个解决方案信息,点击可以执行整个项目解决方案。
  • .suo:隐藏文件,包含项目中一些配置。
  • 若干个项目文件夹

项目文件夹组成

  • .csproj:(C sharp project)项目文件,包含项目信息,可以点击运行
  • App.config:配置文件

Main函数输出hello world

static void Main()
{
    Console.WriteLine("hello world");
    Console.ReadKey(); // 读取输入
}

生成解决方案

点击“生成”,选择“生成解决方案”,可以发现当前代码问题。

注释

// 单行注释

/*
多行注释
*/

/// <summary>
/// 
/// </summary>

VS常用快捷键

Ctrl+k+D:快速对齐代码
Ctrl+J:快速弹出智能提示
Shift+End,Shift+Home 
Ctrl+K+C:注释所选代码
Ctrl+K+U:取消对所选代码的注释
F1:转到帮助文档
折叠冗余代码:#Region和 #EndRegion

C#数据类型

// 整型
int number = 3;
// 小数类型
float number = 3.14;
double number = 3.14;
// 金钱类型,后缀为m或M
decimal myMoney = 300.5m;
// 字符串类型
string name = "张三"; // c#独有
String name = "张三"; // 所有语言通用类
// 字符类型
char c = 'c';

VS代码波浪线

  1. 红色波浪线:出错
  2. 绿色波浪线:可能出错

编程命名规范

  1. Camel 骆驼命名规范(变量):变量名首单词的首字母要小写,其余每个单词首字母要大写。如:highSchoolStudent
  2. Pascal命名规范(方法 or 类名):要求每个单词的首字母大写,其余字母小写。用于给类或者方法命名

字符串拼接

// +号拼接
string name = "张三";
string newName = "李四"+name;
// 占位符
string name = "张三";
string newName = "李四"+name;
Console.WriteLine("第一个名字是{0},第二个名字是{1}",name,newName);
// 如果多填了没有效果,但是不会报错

关于程序异常

异常并不是语法错误,只是在程序运行期间,由于某些原因出现了问题,使程序不能再运行。

交换两个变量

int n1 = 10;
int n2 = 20;
n1 = n1 - n2;
n2 = n1 + n2;
n1 = n2 - n1;

接收用户输入

string name = Console.ReadLine();

转义符

// 删除前面一个字符
\b
// 换行,只在winform和控制台中有用,windows系统中无用
\n
// 换行,window操作系统用
\r\n
// @符号;
    // 作用1:取消\的转义效果
例如:
string filePath =@"c:\Docs\Source\a.txt";
等价于
string filePath ="c:\\Docs\\Source\\a.txt"
    // 作用2:按照原格式输出
例如:
Console.WriteLine(@"第一个名字是{0},
                  第二个名字是{1}",name,newName);
将会正常输出原格式,包含换行空格等

算术运算符与表达式

自动类型转换:int —> double(大—>小)

显式类型转换:double —> int(小—>大)

输出指定位数

double d = 3.14;
Console.WriteLine("数字是{0:0.0000},d);

数据类型转换

// 将字符串转换为double或int类型,不兼容类型使用Convert
string str = "123";
int num = Convert.ToInt32(str); // 本质是调用Int.parse
等价于
int num = int.Parse(str); // 效率更高

// 将Int转换为Double类型
double num = num * 1.0;
double num = double.Parse(num); // 转换失败抛异常

// Int.TryParse()方法:尝试将string转为int
int number = 0;
number = int.TryParse(str,out number); // 转换效率最高
// 尝试将str转换为数字,转换失败不会抛出异常。

异常捕获

try
{
    do sometings;
}catch(Exception ex)
{
    do sometings;
}

程序调试方法

  1. F11逐句调试
  • 语句标黄为待执行语句(目前还未执行)

  • 添加监视变量:选择“调试”->“窗口”->“监视”

  • 变量表达式的值均可被监视

  • 红色的值表示刚被修改过

  1. F10逐过程调试

  2. 断点调试

可疑代码行前添加红色断点

continue与质数

continue:跳出本次循环,进入下一个循环。

while(循环判断){
    ...;
    ...;
    continue;(直接进入第一行循环判断)
    ...;
    ...;
}

常量

声明常量的方法

const int number = 30;
// 加const后,变量不可再重新赋值

枚举

public enum 枚举名
{1,
    值2,
    值3......
}

enum:关键字,声明枚举的关键字
枚举名:需要符合Pascal规范,首字符大写

Tips:将枚举声明到命名空间的下面,类的外面,表示该命名空间下所有的类都可使用该枚举。枚举是自定义一种变量类型。

namespace{
    public enum Gender{,,
	}
    class Program{
        static void Main(string[] args){
        	Gender gender = Gender.;
   		}
    }
}

枚举类型与int类型可以互相转换

// 枚举转int类型
public enum Gender{,,
}
Gender gender = Gender.;
int num = (int)gender; // 转为int后,值为枚举类型值的下标0
// int转枚举类型
int index = 1;
Gender gen = (Gender)index;
// 根据index值找到枚举中对应下标的值,找不到不抛异常,直接输出数字

所有类型都可ToString转为string类型

// 枚举转string类型
Gender gender = Gender.;
string str = gender.ToString();
// 将string转枚举类型
// string为数字,则为枚举中对应下标的值
// string为字符,需要enum中必须要有该类型
string str = "1";
Gender newGender = (Gender)Enum.Parse(typeof(Gender), str);
Console.WriteLine(newGender);
// 当枚举中没有对应的字符串时,抛出异常

结构

public struct StructName{
    public string _name;
    public int _age;
    public char _gender;
}
// 字段前面加上_ ,表示不是变量,是字段

数组

// 推荐声明方式
int[] nums = new int[10];
int[] nums = {1,2,3,4,5,6};
// 其它声明方式
int[] nums = new int[3]{1,2,3};
int[] nums = new int[]{1,2,3};

方法

[public] static 返回值类型 方法名([参数列表])
{
    方法名:
}

如果你写的方法跟Main()函数同在一个类中,类名是可以省略的。

public:访问修饰符,公开的,哪都可以访问.
static:静态的
返回值类型:如果不需要写返回值,写void

上一篇: C#基础笔记

下一篇: 什么是MVC模式