开源 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();
    }
}
相关推荐
向宇it15 分钟前
【unity实战】MapMagic 2实战例子
游戏·3d·unity·c#·游戏引擎
惘嘫、冋渞19 分钟前
Centos7 自建Umami-开源免费的网站访问流量统计分析平台
开源
说私域20 分钟前
基于多模态AI技术的传统行业智能化升级路径研究——以开源AI大模型、AI智能名片与S2B2C商城小程序为例
人工智能·小程序·开源
"菠萝"35 分钟前
C#知识学习-017(修饰符_6)
学习·c#
VB.Net1 小时前
C#循序渐进
开发语言·c#
feifeigo1232 小时前
C# WinForms实现模拟叫号系统
c#
helloworddm3 小时前
Orleans 流系统握手机制时序图
后端·c#
William_cl3 小时前
【C# OOP 入门到精通】从基础概念到 MVC 实战(含 SOLID 原则与完整代码)
开发语言·c#·mvc
说私域4 小时前
基于开源AI大模型、AI智能名片与S2B2C商城小程序的购物中心精准零售数据架构研究
人工智能·小程序·开源
CoderJia程序员甲4 小时前
GitHub 热榜项目 - 日榜(2025-10-18)
ai·开源·大模型·github·ai教程