C#基础笔记

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值