开源 C# 快速开发(一)基础知识

文章的目的为了记录使用C# 开发学习的经历。开发流程和要点有些记忆模糊,赶紧记录,防止忘记。

相关链接:

开源 C# 快速开发(一)基础知识

开源 C# 快速开发(二)基础控件

开源 C# 快速开发(三)复杂控件

开源 C# 快速开发(四)自定义控件--波形图

开源 C# 快速开发(五)自定义控件--仪表盘

开源 C# 快速开发(六)自定义控件--圆环

开源 C# 快速开发(七)通讯--串口

开源 C# 快速开发(八)通讯--Tcp服务器端

开源 C# 快速开发(九)通讯--Tcp客户端

开源 C# 快速开发(十)通讯--http客户端

推荐链接:

开源 C# .net mvc 开发(一)WEB搭建_c#部署web程序-CSDN博客

开源 C# .net mvc 开发(二)网站快速搭建_c#网站开发-CSDN博客

开源 C# .net mvc 开发(三)WEB内外网访问-CSDN博客

开源 C# .net mvc 开发(四)工程结构、页面提交以及显示-CSDN博客

开源 C# .net mvc 开发(五)常用代码快速开发_c# mvc开发-CSDN博客

开源 C# .net mvc 开发(六)发送邮件、定时以及CMD编程-CSDN博客

开源 C# .net mvc 开发(七)动态图片、动态表格和json数据生成-CSDN博客

开源 C# .net mvc 开发(八)IIS Express轻量化Web服务器的配置和使用-CSDN博客

开源 C# .net mvc 开发(九)websocket--服务器与客户端的实时通信-CSDN博客

本章节主要内容是:C#开发中工程结构,和基础知识。

一、基本介绍

C#(发音为 "C Sharp")是一种现代的、面向对象的、类型安全的编程语言。它由微软团队在 Anders Hejlsberg(Turbo Pascal 和 Delphi 之父)的领导下开发,并于 2000 年首次发布。

C# 的根源可以追溯到 C 语言家族(如 C, C++),因此语法上与 Java 和 C++ 非常相似,但它在设计上吸取了多种语言的优点,并加入了许多创新特性。它的核心目标是让开发者能够构建在 .NET 平台上运行的各种各样健壮、高性能且安全的应用程序。

优点

优点 说明
易于学习 语法清晰、结构良好,尤其对有 C++ 或 Java 背景的开发者非常友好。
功能强大 拥有丰富的语言特性和庞大的类库,几乎能应对任何开发场景。
高性能 持续的版本更新(如 .NET Core 以来)使其性能达到了顶级水平,可与 Go、Java 等媲美。
强大的工具支持 Visual Studio 被誉为世界上最好的 IDE 之一,提供了无与伦比的调试、代码补全和项目管理体验。Visual Studio Code 也是一个轻量级但强大的选择。
强大的社区和企业支持 拥有庞大的开发者社区和微软的强力支持,文档齐全,遇到问题容易找到解决方案。
跨平台 现代的 .NET 是真正的跨平台框架,为开发者提供了极大的灵活性。

二、工程结构

分解决方案和项目

1.解决方案的结构

MyCompany.MyApplication/ # 解决方案根目录

├── MyCompany.MyApplication.sln # 解决方案文件

├── src/ # 源代码目录(存放所有项目)

│ ├── MyCompany.MyApplication.Web/ # Web API 项目

│ │ ├── Controllers/

│ │ ├── Models/

│ │ ├── Program.cs # 程序入口(.NET 6+)

│ │ ├── Startup.cs # 程序入口(.NET 5及以前)

│ │ └── MyCompany.MyApplication.Web.csproj

│ │

│ ├── MyCompany.MyApplication.Core/ # 核心业务逻辑类库

│ │ ├── Entities/ # 实体类

│ │ ├── Services/ # 业务服务

│ │ ├── Interfaces/ # 服务接口(依赖注入)

│ │ └── MyCompany.MyApplication.Core.csproj

│ │

│ └── MyCompany.MyApplication.Infrastructure/ # 基础设施类库

│ ├── Data/ # 数据访问层(DbContext)

│ ├── Repositories/ # 仓储实现

│ └── MyCompany.MyApplication.Infrastructure.csproj

├── tests/ # 测试项目目录

│ ├── MyCompany.MyApplication.Web.Tests/ # Web 项目测试

│ └── MyCompany.MyApplication.Core.Tests/ # Core 项目测试

└── docs/ # 文档目录(可选)

2.项目结构(最常用)

最常用的Form1.cs为窗体,

Program.cs为程序入口

三、设计器和代码编辑器

从工具箱中可以直接拖动控件到设计器,在属性窗口中可以设置选中的控件的属性。

代码编辑器用于

四、清晰度问题

我用的vs是2019版本的,VS2019在Windows 10下显示不清晰,通常和高分辨率屏幕下的缩放设置、硬件加速或DPI适配有关。在网上有许多方法,试了以后显示还是模糊。

在Program.cs中,使用以下代码,可以程序显示清晰

复制代码
/*
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace ctrl
{
    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}
*/


using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace ctrl
{
    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());

            if (Environment.OSVersion.Version.Major >= 6)
                SetProcessDPIAware();
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            //此处设置启动窗口
            Application.Run(new Form1());
            //Application.Run(new McuConfig());
        }
        [System.Runtime.InteropServices.DllImport("user32.dll")]
        private static extern bool SetProcessDPIAware();
    }
}
相关推荐
flysh0534 分钟前
如何利用 C# 内置的 Action 和 Func 委托
开发语言·c#
AI大佬的小弟1 小时前
【小白第一课】大模型基础知识(1)---大模型到底是啥?
人工智能·自然语言处理·开源·大模型基础·大模型分类·什么是大模型·国内外主流大模型
逑之2 小时前
C语言笔记1:C语言常见概念
c语言·笔记·c#
福大大架构师每日一题3 小时前
2026年1月TIOBE编程语言排行榜,Go语言排名第16,Rust语言排名13。C# 当选 2025 年度编程语言。
golang·rust·c#
wangnaisheng3 小时前
【C#】gRPC的使用,以及与RESTful的区别和联系
c#
JosieBook3 小时前
【开源】基于 C# 和 Halcon 机器视觉开发的车牌识别工具(附带源码)
开发语言·c#
龙潜月七3 小时前
做一个背单词的脚本
数据库·windows·c#·aigc·程序那些事
GitCode官方3 小时前
G-Star 精选开源项目推荐|第四期
开源·atomgit
Van_captain3 小时前
rn_for_openharmony常用组件_Breadcrumb面包屑
javascript·开源·harmonyos
寻星探路3 小时前
【Python 全栈测开之路】Python 基础语法精讲(一):常量、变量与运算符
java·开发语言·c++·python·http·ai·c#