当前位置: 首页 > news >正文

c#笔记-创建一个项目

创建一个项目

创建控制台程序

在你安装完成Visual Studio后打开它,你会的到一个启动窗口
在这里插入图片描述
点击创建新项目,选择右上角c#的没有Framework的控制台应用。
在这里插入图片描述
项目名称,位置自己随意。
目标框架选择NET7.0。

项目创建完成后应该你的界面应该类似于这样:
在这里插入图片描述

运行程序

点击菜单里的播放键可以运行程序
在这里插入图片描述
其中,左边的带有项目名字的深色播放键是调试。
编译器会在运行这个程序时同时监视他的CPU,内存使用情况。
右侧浅色播放键是仅运行。快捷键Ctrl+F5

然后,你应该会出现一个默认黑底白字的框框,出现类似下面的内容
在这里插入图片描述

解决方案管理器

解决方案:解决方案是包含项目的集合,它们共同实现一个目标。解决方案本身不直接影响编译或运行,它只是类似于一个目录一样把相关的项目,文件,文件夹组织起来,方便你查看和导航。

  • 项目:编译为程序集的基本单位。编译和运行都作用整个项目。
    • 依赖项
      • 包:类似于游戏中的mod或dlc。提供了一些封装好的代码。就像你的代码一样生效,但你不能修改里面的内容。
      • 分析器:分析你的源码的程序。自动补全,代码提示这些都由分析器提供。
      • 框架:框架是为了某一功能封装的一系列包。
      • 项目:直接引用其他的项目中的代码或资源,不需要复制或修改任何文件,也不需要额外的打包步骤,就能在你的项目中使用它们。
    • 源码文件:这是你编写的源码,他们在编译后会变成一个可执行文件(exe)或是动态链接库(dll)文件。他们都能被别的程序执行其中的部分内容。但可执行文件可以自己独立执行。

在这里插入图片描述

程序入口

顶级语句

在你运行程序以后会弹出一个窗口,显示一行文字:Hello world

现在将代码中的所有东西再复制一遍。然后运行,就会得到两行Hello world
在这里插入图片描述
显然,我们的程序是写在这里的。 在这里写了什么,什么就会生效。

Main方法

你可能会说这不废话吗。这么大一片白只有这里有东西。不写这写哪?

嗯。。。确实。不过这是一个新版本的功能。大部分培训机构和学校都不会使用这个功能。
所以你必须知道,在老版本中,长什么样。你在网上找到的大部分文章,都会使用老版本的格式。

如果你在之前创建项目的时候勾选了这个勾,他会以老版本的格式创建示例程序。
在这里插入图片描述
我们的代码,将写在这里面
在这里插入图片描述
并没有什么配置或选项。只因为他是一个名为Main的方法(还有这一堆修饰词),所以他就是程序的开始。
在Main方法中(这一对括号内)右键可以切回去。
在这里插入图片描述

多个程序入口点

如果一个项目没有程序入口点,那么他就是dll文件。如果他有入口点,那么就是exe文件。
如果同时存在多个顶级语句(分散在不同的源码文件中),或是有多个Main方法。
那么是会报错的。

在这里插入图片描述
在这里插入图片描述

但是如果只有一个文件有顶级语句,那么无论你有多少个Main方法都没关系。
因为顶级语句有更高的优先级,当他存在时,Main方法会被无视。

提示

内联提示

打开工具->选项->搜索框内写内联。
在这里插入图片描述
按照自己的喜好选择行尾或最右侧。
在这里插入图片描述
然后拉到最下面,勾选这些:
在这里插入图片描述


然后你在代码里随便输点什么,你会发现在主界面就会提示你错误
在这里插入图片描述
并且初始代码的中间还多了灰色的小提示。那个提示不能选中,但是鼠标放上去会有东西。

在这里插入图片描述

文档注释

当一个程序被打包以后,里面的文档注释会被单独提取出来,做成一个文本文件。
也就是说,注释和程序是分开的,你可以随意改动注释不会出现问题。

你可以点击这里跳转到下载页面。
中文的文档注释没有适配最新版本的注释包。但是因为上述特点,可以将就着使用它。

找到.NET 安装文件夹,默认情况下,你在上方的路径里输入:%ProgramFiles%\dotnet\packs
就能跳转到。
在这里插入图片描述
打开下载来的压缩包。找到和压缩包里对应名字的文件夹。
在这里插入图片描述
依次打开最新版本,ref,唯一的文件夹。里面有一大堆xml文件。
把压缩包里面对应文件夹里的zh-hans文件夹拖到这个目录里。
在这里插入图片描述
最后重启VS就行了
在这里插入图片描述

跳转帮助

如果看到一个你看不懂的东西,可以把光标放在他上面,然后按F1。VS会启动你的默认浏览器,打开官网对此代码的说明书。
并且是中文的。

对于错误,你可以点击他的编号查看错误的帮助。

不过错误的帮助跳转是英文的,你需要在那个网页滚动到最下方,切换语言。
在这里插入图片描述

编写辅助

自动补全

按下回车换行,将上面的代码抄写一遍,你会发现在输入的时候会出现代码提示
在这里插入图片描述
使用方向键的上下可以选中代码
按下空格,Tab,回车,或大部分符号键会把选中的这一块弄上去。
在这里插入图片描述
这些有星星的表示这些东西是可以直接放这里用的。但是这种置顶没有在下面的列表中去除掉相同的。
用置顶的和用下面一样的是一样的效果。

代码预测

新版的VS代码提示学习了一堆范例代码,于是可以根据上下文推测你想要的代码。
在这里插入图片描述
在这里插入图片描述
按下Tab可以把这些灰色的代码直接补上去。

自动排版

这项功能在VS中叫格式化文档。
他会自动操控你的换行,空格,缩进。
比如你给初始代码的点左右加空格
在这里插入图片描述
按住Ctrl键,依次按下K,D键。就会触发自动排版。

相关文章:

c#笔记-创建一个项目

创建一个项目 创建控制台程序 在你安装完成Visual Studio后打开它,你会的到一个启动窗口 点击创建新项目,选择右上角c#的没有Framework的控制台应用。 项目名称,位置自己随意。 目标框架选择NET7.0。 项目创建完成后应该你的界面应该类似…...

Photoshop如何使用图像调色之实例演示?

文章目录 0.引言1.将一张偏冷调的图像调整成暖调2.将图像调整成不同季节色彩倾向3.变换花朵的颜色4.创建人像轮廓风景5.修饰蓝天白云6.调换花草颜色 0.引言 因科研等多场景需要进行绘图处理,笔者对PS进行了学习,本文通过《Photoshop2021入门教程》及其配…...

IDEA中使用Git提交代码提示:您即将把CRLF行分隔符提交到Gt仓库。 建议将core.autocrlf Git特性设置为trUe,以免发生行分隔符问题。

IDEA中使用Git提交代码提示:您即将把CRLF行分隔符提交到Gt仓库。 建议将core.autocrlf Git特性设置为trUe,以免发生行分隔符问题。 问题背景: 在IDEA中,使用Git提交代码到远程仓库时,结果弹出一个警告窗口 问题原因: …...

ArduPilot之开源代码LibrarySketches设计

ArduPilot之开源代码Library&Sketches设计 1. 简介1.1 Core libraries1.2 Sensor libraries1.3 Other libraries 2. 源由3. Library Sketches设计3.1 设计框架3.2 Example Sketches3.3 AP_Common Sketches3.3.1 配置sitl环境3.3.2 编译AP_Common3.3.3 运行AP_Common3.3.4 代…...

第一章:概述

1,因特网概述 1.网络、互联网和英特网 网络(Network)由若干结点(Node)和连接这些结点的链路(Link)组成。 多个网络还可以通过路由器互连起来,这样就构成了一个覆盖范围更大的网络,即互联网(或互连网)。因此,互联网是“网络的网络…...

MySQL --- DDL图形化工具表结构操作

一. 图形化工具 1. 介绍 前面我们讲解了DDL中关于数据库操作的SQL语句,在我们编写这些SQL时,都是在命令行当中完成的。大家在练习的时候应该也感受到了,在命令行当中来敲这些SQL语句很不方便,主要的原因有以下 3 点:…...

归一化处理(2023寒假每日一题 14)

在机器学习中,对数据进行归一化处理是一种常用的技术。 将数据从各种各样分布调整为平均值为 0 0 0、方差为 1 1 1 的标准分布,在很多情况下都可以有效地加速模型的训练。 这里假定需要处理的数据为 n n n 个整数 a 1 , a 2 , ⋯ , a n a_1,a_2,⋯…...

无公网IP,外网远程连接MySQL数据库

哈喽~大家好,这篇来看看无公网IP,外网远程连接MySQL数据库。 文章目录 前言1. 检查mysql安装状态2. 安装配置cpolar内网穿透3. 创建tcp隧道,映射3306端口4. 公网远程连接4.1 图形化界面4.2 使用命令行远程连接 5. 配置固定tcp端口地址5.1 保留…...

OJ刷题 第十四篇(递归较多)

23204 - 进制转换 时间限制 : 1 秒 内存限制 : 128 MB 将一个10进制数x(1 < x < 100,000,000)转换成m进制数(2< m < 16) 。分别用 ABCDEF表示10以上的数字。 输入 x m (1 < x < 100,000,000, 2< m < 16) 输出 m进制数 样例 输入 31 16 输出 1F 答…...

FileZilla读取目录列表失败(vsftpd被动模式passive mode部署不正确)

文章目录 现象问题原因解决方法临时解决&#xff08;将默认连接方式改成主动模式&#xff09;从根本解决&#xff08;正确部署vsftpd的被动模式&#xff09; 现象 用FileZilla快速连接vsftpd服务器时&#xff0c;提示读取目录列表失败 问题原因 是我vsftpd服务端的被动模式没…...

【Java面试八股文】数据库篇

导航&#xff1a; 【黑马Java笔记踩坑汇总】JavaSEJavaWebSSMSpringBoot瑞吉外卖SpringCloud黑马旅游谷粒商城学成在线MySQL高级篇设计模式牛客面试题 目录 请你说说MySQL索引,以及它们的好处和坏处 请你说说MySQL的索引是什么结构,为什么不用哈希表 请你说说数据库索引的底…...

Android Glide加载图片、网络监听、设置资源监听

再搞事情之前首先创建一个项目&#xff0c;就命名为GlideDemo吧。    一、项目配置 创建好之后&#xff0c;在app模块下build.gradle的dependencies闭包中添加如下依赖&#xff1a; //glide//glideimplementation com.github.bumptech.glide:glide:4.11.0annotationProcess…...

等保定级报告模版

等保定级怎么做_luozhonghua2000的博客-CSDN博客 上篇给大家说清楚了,等保定级怎么做,但在日常工作中,需要向上级或甲方输出定级报告,这篇我降弄个模版供大家参考。 信息系统安全等级保护定级报告 XX 平台系统描述 (一) 2023年5月,XX 正式上线,XX 隶属于深圳 XX 科技…...

计算机组成原理4.2.2汉明码

编码的最小距离 奇校验和偶校验 看1的个数是奇数 还是偶数 汉明码 汉明码的配置 根据不等式&#xff0c;确定增添几位&#xff0c;根据指数放置增添位 汉明码的检错 分不同检测小组 分组规则&#xff1a;哪位为’1‘就是哪组元素。 1号位为‘1’的都是第一组元素&#…...

JavaScript全解析——本地存储的概念、用法详解

本地存储概念&#xff1a; 就是浏览器给我们提供的可以让我们在浏览器上保存一些数据 常用的本地存储 localStorage sessionStorage localStorage 特点: 1.长期存储,除非手动删除否则会一直保存在浏览器中&#xff0c;清除缓存或者卸载浏览器也就没有了 2.可以跨页面通讯,…...

对象浅拷贝的5种方式

参考原文:浅拷贝的五种实现方式 - 掘金 (juejin.cn) 哈喽 大家好啊 最近发现自己对对象都不是很熟练&#xff0c;特别是涉及到一些复制&#xff0c;深浅拷贝的东西 1.Object.assign 首先 我们创建一个空对象obj1 然后创建一个对象obj2 用object.assign(目标对象&#xff0c…...

Java每日一练(20230504)

目录 1. 位1的个数 &#x1f31f; 2. 移除元素 &#x1f31f; 3. 验证二叉搜索树 &#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 位1的个数 编写一个…...

【深度学习】计算机视觉(13)——模型评价及结果记录

1 Tensorboard怎么解读&#xff1f; 因为意识到tensorboard的使用远不止画个图放个图片那么简单&#xff0c;所以这里总结一些关键知识的笔记。由于时间问题&#xff0c;我先学习目前使用最多的功能&#xff0c;大部分源码都包含summary的具体使用&#xff0c;基本不需要自己修…...

项目经理在项目中是什么角色?

有人说&#xff0c;项目经理就是一个求人的差事&#xff0c;你是在求人帮你做事。 有人说&#xff0c;项目经理就是一个与人扯皮的差事&#xff0c;你要不断的与开发、产品、测试等之间沟通、协调。 确实&#xff0c;在做项目的时候&#xff0c;有的人是为了完成功能&#x…...

【技术分享】防止根据IP查域名,防止源站IP泄露

有的人设置了禁止 IP 访问网站&#xff0c;但是别人用 https://ip 的形式&#xff0c;会跳到你服务器所绑定的一个域名网站上 直接通过 https://IP, 访问网站&#xff0c;会出现“您的连接不是私密连接”&#xff0c;然后点高级&#xff0c;会出现“继续前往 IP”&#xff0c;…...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解&#xff08;完整版&#xff09; 一、现代浏览器渲染流程&#xff08;详细说明&#xff09; 1. 构建DOM树 浏览器接收到HTML文档后&#xff0c;会逐步解析并构建DOM&#xff08;Document Object Model&#xff09;树。具体过程如下&#xff1a; (…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中&#xff0c;性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期&#xff0c;开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发&#xff0c;但背后往往隐藏着系统资源调度不当…...

IP如何挑?2025年海外专线IP如何购买?

你花了时间和预算买了IP&#xff0c;结果IP质量不佳&#xff0c;项目效率低下不说&#xff0c;还可能带来莫名的网络问题&#xff0c;是不是太闹心了&#xff1f;尤其是在面对海外专线IP时&#xff0c;到底怎么才能买到适合自己的呢&#xff1f;所以&#xff0c;挑IP绝对是个技…...

力扣热题100 k个一组反转链表题解

题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...

第7篇:中间件全链路监控与 SQL 性能分析实践

7.1 章节导读 在构建数据库中间件的过程中&#xff0c;可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中&#xff0c;必须做到&#xff1a; &#x1f50d; 追踪每一条 SQL 的生命周期&#xff08;从入口到数据库执行&#xff09;&#…...

【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验

Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...

抽象类和接口(全)

一、抽象类 1.概念&#xff1a;如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象&#xff0c;这样的类就是抽象类。 像是没有实际⼯作的⽅法,我们可以把它设计成⼀个抽象⽅法&#xff0c;包含抽象⽅法的类我们称为抽象类。 2.语法 在Java中&#xff0c;⼀个类如果被 abs…...

用递归算法解锁「子集」问题 —— LeetCode 78题解析

文章目录 一、题目介绍二、递归思路详解&#xff1a;从决策树开始理解三、解法一&#xff1a;二叉决策树 DFS四、解法二&#xff1a;组合式回溯写法&#xff08;推荐&#xff09;五、解法对比 递归算法是编程中一种非常强大且常见的思想&#xff0c;它能够优雅地解决很多复杂的…...