C#,入门教程(27)——应用程序(Application)的基础知识

上一篇: 

C#,入门教程(26)——数据的基本概念与使用方法icon-default.png?t=O83Ahttps://blog.csdn.net/beijinghorn/article/details/124952589

一、什么是应用程序 Application?

应用程序是编程的结果。一般把代码经过编译(等)过程,最终形成的可执行 或 可再用 的文件称为应用程序。可执行文件(executable file)以 .exe 文后缀。可再利用(一般称为动态链接库Dynamic Link Library)以 .dll 为后缀。

平时遇到的所有软件,实际上就是一个或多个可执行文件为主的程序包。

二、应用程序在哪儿?

咱们先看看文件夹。

文件先解释一下:

App.config 文件是本应用程序的一些配置信息,不用管它;

DataBeginner.csproj 是创建的项目文件;请参阅另外一篇博客。

DataBeginner.sln 是创建的项目入口文件;双击这个文件自动进入 Visual Studio 2022 并打开项目。

Form1.cs 是 窗口 Form1 的代码文件;

Form1.Designer.cs 是 窗口Form1 的设计文件,定义类页面上面的控件;

Form1.resx 是 窗口Form1 相关的资源信息(比如图片等等);

Program.cs 是项目的入口代码,main 函数就在这里。不用管它。

文件夹:

bin 应用程序在这个文件夹下;bin = Binary Files 

obj 先不管;

Properties 也不管;

三、关于 bin 文件夹

 bin 文件夹下面一般有两个子目录  Debug  和 Release;

分别存放 调试版本 与 发行版本 应用程序。

也可能只有  Debug。

事有点绕!继续读。

四、调试版本 与 发行版本?

点击菜单【项目】 --> 【???属性】即可进入项目的属性设置。

再 点击 左侧【生成】,即可了解(设置)调试版本 与 发行版本。

咱们先学习一下,看看即可。

 点击 配置(C): 活动(Debug)这里;可以切换 调试版本Debug 与 发行版本 Release。

 发行版本:

五、生成应用程序第一

点击【启动】,如果程序没有错误,会自动生成 调试版本 的应用程序。

 这个时候,咱们 进入 bin\Debug 可以看到:

其中的 DataBeginner.exe 就是应用程序哈! 调试版本 嘀!

那么,怎么生成 发行版本 的应用程序呢?

六、生成应用程序第二

点击菜单【生成】和 【批生成.(T)..】

 以及

就可以同时生成 调试版本 和 发行版本的 应用程序。

再进入 bin\Debug 文件夹

这个是 调试版本的。

再看 bin\Release 文件夹: 

 都有 DataBeginner.exe 文件。这个是 发行版本 的。

其他文件先不管它,有没有都可以运行。

七、装修——让你的应用程序显得专业一点

1、应用程序的图标

只有 console ,没有 Form 的应用程序如同没进过大观园的刘姥姥,土!

没有图标的应用程序,则如同穿校服的你,显得稚嫩而单纯。

精心设计并设置应用程序的图标,是项目经理的重头戏。

需要在两个地方设置图标,第一个是 Form1 设计窗口:

刚刚设置的是 Form1 的图标。如果有 多个 Form ,可以设置不同的图标!

第二个是应用程序的图标,这个显示在 Windows 快捷键哈。

2、应用程序的版本管理

应用版本管理是非常严肃的事情。下面的描述只是让大家体验一下,所以会相对简单。

版本是应用程序的重要历史信息。没有历史就没有文化。无论是文科、理科,中小学都应该把《历史》作为必修课,高考必考科目。

你应该给自己的应用程序设计一个更新、修正与发展的路径,并以 版本信息 的方式作为其中的一个记录。Timeline !

八、关于 bin 更多的信息

Debug 和 Release 文件夹下面,应该设置更多的子目录。

比如:

\Fonts 存放必须的字体文件;

\Images 存放 图片文件;

\Sound 存档音效 或 音乐文件;

\Movie 存放视频文件;

\Data 存放数据文件;

等等;

程序中 Application.StartPath 就是 exe 所谓的文件夹。通过目录组合函数,可以访问下面的子目录及其文件。

using System.IO;string folder = Path.Combine(Application.StartupPath, @"fonts");
string fontFile = Path.Combine(folder, @"led.ttf");

写了不少字,有点收获吗?

下一篇:

C#,入门教程(28)——文件读写的基础知识icon-default.png?t=O83Ahttps://blog.csdn.net/beijinghorn/article/details/124231282

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/1663.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习(1):线性回归概念

1 线性回归基础 1.1 什么是线性 例如:汽车每小时60KM,3小时可以行使多长距离?已知汽车的速度,则汽车的行使距离只与时间唯一相关。在二元的直角坐标系中,描出这一关系的图是一条直线,所以称为线性关系。 线…

日志系统实践

日志系统 产生日志 logging:level:root: infoconfig: /usr/src/config/logback-spring.xml<?xml version"1.0" encoding"UTF-8"?> <configuration><appender name"STDOUT" class"ch.qos.logback.core.ConsoleAppender&qu…

基于微信小程序的智能停车场管理系统设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

如何选择Ubuntu版本

一、为什么要选择Ubuntu系统&#xff1f; CentOS官方已全面停止维护CentOS Linux项目 。具体来说&#xff0c;CentOS 8已于2021年12月31日停止维护&#xff0c;而CentOS 7则在2024年6月30日结束了生命周期 。这意味着这些版本不再接收官方的安全更新、bug修复或技术支持 二、…

Elasticsearch ES|QL 地理空间索引加入纽约犯罪地图

可以根据地理空间数据连接两个索引。在本教程中&#xff0c;我将向你展示如何通过混合邻里多边形和 GPS 犯罪事件坐标来创建纽约市的犯罪地图。 安装 如果你还没有安装好自己的 Elasticsearch 及 Kibana 的话&#xff0c;请参考如下的链接来进行安装。 如何在 Linux&#xff0…

分布式缓存redis

分布式缓存redis 1 redis单机&#xff08;单节点&#xff09;部署缺点 &#xff08;1&#xff09;数据丢失问题&#xff1a;redis是内存存储&#xff0c;服务重启可能会丢失数据 &#xff08;2&#xff09;并发能力问题&#xff1a;redis单节点&#xff08;单机&#xff09;部…

【ArcGIS初学】产生随机点计算混淆矩阵

混淆矩阵&#xff1a;用于比较分类结果和地表真实信息 总体精度(overall accuracy) :指对角线上所有样本的像元数(正确分类的像元数)除以所有像元数。 生产者精度(producers accuracy) &#xff1a;某类中正确分类的像元数除以参考数据中该类的像元数(列方向)&#xff0c;又称…

C++ STL之容器介绍(vector、list、set、map)

1 STL基本概念 C有两大思想&#xff0c;面向对象和泛型编程。泛型编程指编写代码时不必指定具体的数据类型&#xff0c;而是使用模板来代替实际类型&#xff0c;这样编写的函数或类可以在之后应用于各种数据类型。而STL就是C泛型编程的一个杰出例子。STL&#xff08;Standard …

GitLab本地服务器配置ssh和克隆项目

1. 本地安装好git git链接&#xff1a;https://git-scm.com/downloads/win 无脑点击下一步安装即可,打开Git Bash命令终端如下&#xff1a; 2. 配置本地用户名和邮箱 git config --global user.name "你的名字" git config --global user.email "你的邮箱&quo…

【Unity高级】一文了解Unity 中的条件编译(附所有指令)

一、Unity中的条件编译 Unity 对 C# 语言的支持包括使用指令&#xff0c;这些指令允许您根据是否定义了某些脚本符号&#xff0c;选择性地包含或排除代码的编译。有关这些指令在 C# 中如何工作的更多信息&#xff0c;请参阅微软关于 C# 预处理器指令 的文档。 &#xff08;一…

主数据系统建设模式分析

很多企业在长期的信息化建设和使用过程中&#xff0c;或多或少的存在数据一致性问题&#xff0c;这类问题导致了大量的数据手工梳理、清洗的工作&#xff0c;对于系统的对接以及统计分析造成了极大的不便&#xff0c;因此信息化部门的管理者迫切的想通过主数据项目来解决目前的…

Redis是单线程还是多线程?

大家好&#xff0c;我是锋哥。今天分享关于【Redis是单线程还是多线程&#xff1f;】面试题。希望对大家有帮助&#xff1b; Redis是单线程还是多线程&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Redis是 单线程 的。 尽管Redis的处理是单线程的&a…

UML系列之Rational Rose笔记一:用例图

好久没有更新笔记了&#xff1b;最近想整理下近期掌握的UML软件建模的知识笔记&#xff1b; 包括但不限于Rational Rose&#xff1b;Drawio&#xff1b;EA&#xff1b;PowerDesigner&#xff1b;Visio&#xff1b;StarUML&#xff1b;Software等软件的使用&#xff1b;UML软件…

熵权法(变异系数法)

熵权法(变异系数法) 一种客观赋权方法&#xff0c;它根据指标的变异程度来确定指标的权重&#xff0c;变异程度越大&#xff0c;说明该指标所包含的信息量越大&#xff0c;相应的权重也就越大。以下是熵权法的详细介绍&#xff1a; 概率与信息量的关系 概率P(x)越小,信息量I(…

基于当前最前沿的前端(Vue3 + Vite + Antdv)和后台(Spring boot)实现的低代码开发平台

项目是一个基于当前最前沿的前端技术栈&#xff08;Vue3 Vite Ant Design Vue&#xff0c;简称Antdv&#xff09;和后台技术栈&#xff08;Spring Boot&#xff09;实现的低代码开发平台。以下是对该项目的详细介绍&#xff1a; 一、项目概述 项目名称&#xff1a;lowcode-s…

JAVA:利用 RabbitMQ 死信队列实现支付超时场景的技术指南

1、简述 在支付系统中&#xff0c;订单支付的超时自动撤销是一个非常常见的业务场景。通常用户未在规定时间内完成支付&#xff0c;系统会自动取消订单&#xff0c;释放相应的资源。本文将通过利用 RabbitMQ 的 死信队列&#xff08;Dead Letter Queue, DLQ&#xff09;来实现…

逻辑测试题

https://blog.csdn.net/qq_39081315/article/details/121393597 先生成一个点&#xff0c;每生成一个点判断距离&#xff0c;角度&#xff0c;满足加入存点的容器&#xff0c;直到容器大小为4。 随机生成点&#xff1a; 分区域&#xff1a;最大距离20&#xff0c;以20为正方形…

图解Git——分支开发工作流《Pro Git》

分支开发工作流 由于分支管理的便捷&#xff0c; 才衍生出这些典型的工作模式&#xff0c;你可以根据项目实际情况选择。 1. 长期分支 适用于持续开发和发布周期长的项目。常见的长期分支包括&#xff1a; master&#xff1a;只保留稳定的代码&#xff0c;通常用于生产环境。…

IOS界面传值-OC

1、页面跳转 由 ViewController 页面跳转至 NextViewController 页面 &#xff08;1&#xff09;ViewController ViewController.h #import <UIKit/UIKit.h>interface ViewController : UIViewControllerend ViewController.m #import "ViewController.h" …

【Spring Boot 应用开发】-04-01 自动配置-数据源-连接池

资源关闭 还记得上一节中的这段代码么&#xff1f; try {if (resultSet ! null) resultSet.close();if (preparedStatement ! null) preparedStatement.close();if (connection ! null) connection.close(); } catch (SQLException e) {e.printStackTrace(); }这是我们在查询…