开源 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();
    }
}
相关推荐
fthux1 小时前
如果你用 Mac,那你可能需要 Noti Shift
macos·开源·github
冬奇Lab13 小时前
每日一个开源项目(第145篇):Trellis - 把项目记忆、规范和任务上下文持久化进代码仓库
人工智能·开源·资讯
小爷毛毛_卓寿杰21 小时前
我把一个 3B 模型塞进了 Xinference,然后它干掉了 DeepSeek V3.2
人工智能·开源·github
饼干哥哥1 天前
扣子3.0测评:我让 Codex 和 Claude Code 住同一个桌面,结果它们打架了!
人工智能·开源·代码规范
HelloGitHub1 天前
《HelloGitHub》第 123 期
开源·github
修己xj1 天前
基于 Datasheet 二次开发:一个纯浏览器端的 PostgreSQL 数据分析工具
开源
冬奇Lab2 天前
每日一个开源项目(第144篇):ai-website-cloner-template - 一条命令、多 Agent 并行,把任意网站逆向成 Next.js 代码
前端·人工智能·开源
冬奇Lab4 天前
每日一个开源项目(第142篇):android/skills - Google 官方 Android 开发 AI Skill 库
人工智能·开源·资讯
冬奇Lab4 天前
Skill 系列(06):Skill 工程化与治理——路由准确率 38%、压缩节省 76%
人工智能·开源·agent