当前位置: 首页 > 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;…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者&#xff1a;来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗&#xff1f;了解下一期 Elasticsearch Engineer 培训的时间吧&#xff01; Elasticsearch 拥有众多新功能&#xff0c;助你为自己…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接&#xff1a;3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯&#xff0c;要想要能够将所有的电脑解锁&#x…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

ios苹果系统,js 滑动屏幕、锚定无效

现象&#xff1a;window.addEventListener监听touch无效&#xff0c;划不动屏幕&#xff0c;但是代码逻辑都有执行到。 scrollIntoView也无效。 原因&#xff1a;这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作&#xff0c;从而会影响…...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...