admin 管理员组文章数量: 887239
安装vs
- Visual Studio 2022下载地址:
Visual Studio 2022https://visualstudio.microsoft/zh-hans/
如下图:
建议:装Visual Studio Exterprise2022企业版这个版本功能比较全。
Visual Studio 2022专业版永久密钥:
VS 2022 Enterprise:VHF9H-NXBBB-638P6-6JHCY-88JWHVS 2022 Professional:TD244-P4NB7-YQ6XK-Y8MMM-YWV2J
第一个命令行工程
项目平台
Framework的第一个版本发布于2002年, .NET Framework 是以一种采用系统虚拟机运行的编程平台,以通用语言运行库(Common Language Runtime)为基础,支持多种语言(C#、VB、C++、Python等)的开发
net core第一个版本在2016年推出 net core有支持跨平台(Windows,Mac OSX,Linux)能力的应用程序开发框架
项目创建命名:
建议使用公司名+项目名称 最好不要使用中文
解决方案名称可以和项目一致(后期有需要可以修改)
项目结构分析:
//项目的文件列表
//1.程序集信息文件(了解)
//如何查看程序集信息
//(1)AssemblyInfo 查看
//(2)程序集信息查看
//(3)程序编译通过的程序集文件查看
//2.引用
//当前项目中可以使用 的系统默认模块,
//自己写的模块或者第三方提供的模块
//3.App.config配置文件(了解)
//项目的框架 等配置信息 ,项目需要使用的特点数据信息
//获取配置文件信息
//(1)在引用中导入Configuration
//(2)引入Configuration模块
//(3)使用ConfigurationManager管理程序配置的功能类
<appSettings>
<add key="MyConfigString" value="Test Config Data"/>
<add key="Name" value="测试工程"/>
</appSettings>
using System.Configuration; // 1.在引用中导入Configuration 2.引入Configuration模块
namespace ConsoleApp_app.config
{
internal static class AppSettingConfig
{
public static string resultValue = ConfigurationManager.AppSettings["MyConfigString"].ToString();
public static string resultValue1 = ConfigurationManager.AppSettings["Name"].ToString();
}
}
4.程序入口文件 Program.cs
//程序执行的开始
// //class 类 Program
// Main 入口函数
//入口文件 --> 入口类 -->入口函数
//入口函数 作用:程序执行后自动执行 其他函数一般都要调用后才能执行
// 5.解决方案和项目
//(1).解决方案和项目都是VS提供的用于管理应用程序的容器
//(2).一个解决方案可以包含一个或多个项目.
//(3).这些项目可以利用解决方案 连接在一起 统一编译统一更新
//(4). sln和.csproj文件
//.sln:解决方案文件,里面包含着整个解决方案的信息,可以双击运行。
//.csproj:项目文件,里面包含着这个项目的信息,可以双击运行。
6. debug和release
//1.debug调试 用来运行程序 观察程序执行过程 排查程序错误 不作为正式发布使用 可以使用断点调试功能
//2.release发布 把调试好的程序 通过relase编译 程序更加轻量 ,并做了优化
3.点击快捷键F5 或者点击绿色箭头 启动
4.断点调试 当需要对程序的执行过程进行逐步观察时(或者在排错时)使用断点调试
7.程序集:
1.当程序经过debug或者release 编译程序后得到的 项目文件
2.格式一般为·dll或者是·exe
3.一个项目在编译后就是一个程序集
8. 支持混合语言开发
//不同语言模块集成到同一个项目里 例如vb和c#语言
//都被编译成了MSIL(微软中间语言) 通过ildsm.exe工具观察
路径:"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\ildasm.exe"
VB代码:
Public Class TestVB
Public Function Add(ByVal a As Integer, ByVal b As Integer) As Integer
Return a + b
End Function
End Class
C#代码
public class TestC
{
public int Add(int a, int b) {
return a + b;
}
}
入口类调用混合编码
static void Main(string[] args)
{
//在c#代码中,每行代码的结束,我们都以分号结束,且是在英文输入法下
zhiyou.day1_1CSharp.TestC testC =new day1_1CSharp.TestC();
testC.Add(1, 2);
TestVB testVB = new TestVB();
testVB.Add(1, 2);
}
9.为什么可以混合代码开发
1.CLR英文全称Common Language Runtime,即公共语言运行时 是
2.CLR为不同的编程语言提供了统一的运行平台,对于开发者来说,他们无需考虑平台运行问题,无论使用什么语言开发,最终都会编译成CIL
4.CIL(公共中间语言,COmmon Intermediate Language)。不同的高级语言最终会转化成CIL
5.CLR的主要目标就是为了让编程更简单,让开发者专注于直接需求
CLR 总结 (了解)
CLR提供了:
1、一个支持GC的虚拟机,该虚拟机有自己的一套指令集,即CIL(公共中间语言,COmmon Intermediate Language)。高级语言最终会转化成CIL,
2、一种丰富的元数据表示,用来描述数据类型、字段、方法等。通过这些统一的描述方法来生成对应的程序。
3、一种文件格式,一种专属的不于操作系统和硬件绑定的格式,即跨平台。
4、一套类库,提供了垃圾回收、异常、泛型等基本功能,提供了字符串、数组、列表、字典等数据结构,提供了文件、网络、交互等操作系统功能。
5、一系列规则,定制了在运行时如果查找引用其他文件、生命周期等一系列规则。
10.命名空间和类
//命名空间
含义:命名空间是C#组织代码的方式 通常来管理类的方式
分类:系统命名空间和自定义命名空间
关键字:namespace
using关键字:用来引用其他命名空间。不同项目系统会自动添加不同的命名空间
特点:
不能以数字特殊符号开头 不建议使用中文
一个项目中可以 根据需要定义多个命名空间
一个命名空间下 可以有多个类 . 可以解决多个类名字相同的冲突问题
//类
//含义:类也是C#组织代码的方式 通常来管理具体数据的方式
分类:系统类 和自定义类
关键字:class
特点:类要放在命名空间中
包含:字段 属性 方法 构造函数 析构函数 事件 等..
///一. C#的3种注释符
/// 单行注释 ///
//Console.WriteLine("哈哈,我又变帅了");
//Console.ReadKey();
/// 多行注释 /*要注释的内容*/
以 /* 开头,*/ 结束,之间的是注释内容
/*
* 注释内容
* 注释内容
*/
/// 文档注释 多用来解释类或者方法
在方法或类的上一行输入 /// 就会产生
/// <summary>
/// 文档注释
/// 文档注释
/// </summary>
/// 折叠冗余代码:#Region 和#EndRegion/// 快捷键——Ctrl+K+S
/// 二.VS的常用快捷键
/// Ctrl+K+D:快速对齐代码
/// Ctrl+K+C:注释所选代码
/// Ctrl+K+U:取消对所选代码的注释
/// F1:转到帮助文档
///CW+Tab+Tab
Console.WriteLine("Hello,World!");//显示内容
Console.ReadKey();//等待用户按键,防止一闪而过
/// 三.1.标识符
标识符
标识符是用来识别类、变量、函数或任何其它用户定义的项目。在 C# 中,类的命名必须遵循如下基本规则:
标识符必须以字母、下划线或 @ 开头,后面可以跟一系列的字母、数字( 0 - 9 )、下划线( _ )、@。
标识符中的第一个字符不能是数字。
标识符必须不包含任何嵌入的空格或符号,比如 ? - +! # % ^ & * ( ) [ ] { } . ; : " ' / \。
标识符不能是 C# 关键字。除非它们有一个 @ 前缀。 例如,@if 是有效的标识符,但 if 不是,因为 if 是关键字。
标识符必须区分大小写。大写字母和小写字母被认为是不同的字母。
不能与C#的类库名称相同。
/// 四.C# 关键字
/// 五.数据类型:
/// 数据类型分类
/// C#数据类型分为两大类:值类型和引用类型
/// 整型类型 浮点型 字符型 布尔类型 struct( 结构 )、 enum(枚举 )
/// 字符串,类、接口、数组、集合,委托为引用类型
// 整数类型, 对应各种不同的取值范围,整数类型一共有八种
//位(bit):也叫比特,是计算机存储数据的最小单位,表示一个二进制位
//字节:计算机存储数据的单位,一字节等于八位
//有无符号:表示可否存储负数,有符号表示可以存储负数,无符号则只能存储正数
//8种不同的整数类型
byte byteValue = 1;
sbyte sbyteValue = -1;
short shortValue = -1;
ushort ushortValue = 1;
int intValue = -1; // 对应c# System.Int32结构 详解 c#数据类型对应的.Net结构图5.PNG
uint uintValue = 1;
//c语言中,long类型是4个字节,但在C#中为8个字节
long longValue = -1;
ulong ulongValue = 1;
//可以使用 sizeof 方法。表达式 sizeof(type)
//产生以字节为单位存储对象或类型的存储尺寸
Console.WriteLine("{0},{1}", sizeof(ulong), ulongValue);
//2 浮点数类型
//小数类型被称为浮点数类型,浮点数类型一共有三种。
//float:单精度浮点数,占4个字节
//double:双精度浮点数,占8个字节
//decimal:精确的十进制数值,占16个字节
float floatValue = 3.141592699999f;//float后加上f ,float即可精确到小数点后7位
Console.WriteLine(floatValue);
double doubleValue = 3.14159269998876543; //double可精确到小数点后15位。
Console.WriteLine(doubleValue);
decimal decimalValue = 3.141592612345678901234567m;//decimal类型后加上m 保留精准位数
Console.WriteLine(decimalValue);
Console.WriteLine("{0},{1}", sizeof(decimal), decimalValue);
//字符类型
//特点:只能存放一个字符或者一个汉字 用单引号表示 c#中占2字节
char charValue = 'a';
Console.WriteLine("{0},{1}", sizeof(char), charValue);
//涉及到计算机如何保存一个字符,比如字母’a,那么是如何存储字母的呢?//图ASCII图5.png
//结构体 枚举 后续讲
//
//字符串
//特点:引用类型 可以存储多个字符
//表示方式:
//字符串(string)类型是 System.String 类的别名。
string str = "runoob"; //单行显示
//@ 字符串中可以任意换行,换行符及缩进空格都计算在字符串长度之内。
string str21
= @"<script type=""text/javascript"">
<!--
-->
</script>";
//特殊字符串 --转义字符
// @将转义字符(\)当作普通字符对待
string str1 = @"C:\nWindows";
Console.WriteLine(str1);
string str2 = "wwww\\naaaa";
Console.WriteLine(str2);
//字符串是特殊的引用类型
//特殊原因:字符串赋值时 和值类型数据赋值是深拷贝
//后续引用类型 赋值是浅拷贝
int number1 = 10;
int number2 = number1;
number1 = 20;
Console.WriteLine("number1:{0},numebr2:{1}",number1,number2);
string temp1 = "abc";
string temp2 = temp1;
temp1 = "xxx";
Console.WriteLine("temp1:{0},temp2:{1}",temp1,temp2);
//布尔类型
//包含两个值 true 和false 后续进行条件判断时 常用
bool boolValue = false;
bool bool2Value = true;
//日期类型
DateTime dateTimeValue = DateTime.Now;
Console.WriteLine(dateTimeValue);
//类、接口、数组、集合,委托等后续讲
Console.ReadLine();
版权声明:本文标题:博客摘录「 c#基础1」2024年3月26日(笔记) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1734999786h1688733.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论