编辑
2025-09-22
C#
00

摘要

语言集成查询 (LINQ) 为 C# 和 Visual Basic 提供语言级查询功能和高阶函数 API,让你能够编写具有很高表达力度的声明性代码。

LINQ就像是一个万能的数据查询语言,让你可以用同样的语法来搜索和操作各种数据源(数据库、XML、对象集合等),就像用同一把钥匙能开不同的锁一样

正文

LINQ 的历史

从语言方面的进化
–委托
–匿名方法
–Lambda表达式
–Linq查询表达式

LINQ是什么

  • LINQ是语言级集成查询(Language INtegrated Query)
  • LINQ是一种用来进行数据访问的编程模型,使得.NET语言可以直接支持数据查询
  • LINQ的目标是降低访问数据的复杂度
  • LINQ可以用统一的方法访问不同类型的数据,可以将数据作为对象使用
  • 能够更好地与编程模型集成
  • 可以在Visual Studio中进行智能提示
  • 动态编程
编辑
2025-09-22
C#
00

摘要

在C#中使用GDI+绘制贝塞尔曲线可以通过Graphics类的DrawBezier方法或者使用路径(GraphicsPath)对象然后添加贝塞尔曲线到路径中。如果想要添加多个贝塞尔曲线段,可以使用GraphicsPath对象的AddBezierAddBeziers方法。这里,我们将通过AddBezier方法的使用来介绍如何绘制贝塞尔曲线。

正文

想象你要画一条从A点到B点的曲线:

  1. 传统方法:直接用笔画,很难控制弧度
  2. 贝塞尔方法
    • 在A点和B点之间"悬浮"两个控制点
    • 这两个控制点就像磁铁,"吸引"着曲线向它们弯曲
    • 控制点越靠近曲线,弯曲越明显
    • 控制点越远离曲线,弯曲越平缓

公式推导

对于一阶贝塞尔的话,最终得到的曲线还是一条直线,不过还是可以列一下通式方便后续推导:

编辑
2025-09-22
C#
00

摘要

在C#中,使用GDI+(Graphics Device Interface Plus)可以绘制各种图形,包括多边形。DrawPolygon方法是用来绘制多边形的。这个方法需要一个Pen对象来定义多边形的边界样式(颜色、宽度等),以及一个点数组Point[]来定义多边形的各个顶点。

正文

DrawPolygon(Pen, PointF[])绘制由一组 PointF 结构定义的多边形。
DrawPolygon(Pen, Point[])绘制由一组 Point 结构定义的多边形。
编辑
2025-09-22
C#
00

摘要

在C#中,可以通过DrawPath方法来实现绘制路径的操作。DrawPath方法可以接受一个Path对象作为参数,该对象包含了要绘制的路径描述。下面我们来看一下具体的绘制过程。

首先,我们需要定义一个Path对象。Path对象可以通过AddPath方法来创建,也可以通过添加多个Path对象的方式来创建。在添加Path对象时,可以通过AddLine方法来添加直线段,通过AddCurve方法来添加曲线段,通过AddArc方法来添加圆弧等等。通过这些方法,我们可以将一条路径绘制出来。

我们可以使用DrawPath方法来将这个Path对象绘制出来。DrawPath方法可以接受一个Graphics对象作为参数,Graphics对象可以用来设置绘图参数、设置绘图样式等等。通过Graphics对象,我们可以控制绘图的颜色、线型、线宽、填充颜色等等,从而达到绘制出我们所需要的图形的目的。

正文

一个例子

image.png

编辑
2025-09-22
C#
00

摘要

DrawString方法是C#中的一个重要方法,它允许程序员在窗体、按钮、标签等控件上绘制指定的文本字符串。通过使用DrawString方法,可以在窗体或其他控件上添加交互性,提高应用程序的用户体验。

在C#中,DrawString方法可以接受多个参数,包括指定位置的矩形对象、用于绘制文本的字体对象和用于绘制文本的颜色对象。使用这些参数,可以在指定位置上绘制文本,并使用指定的字体和颜色。此外,DrawString方法还可以接受多个文本字符串,可以通过指定字符串和颜色对象的方式,在多个位置上绘制不同的文本。

在使用DrawString方法时,需要注意一些细节。例如,文本字符串可能会超出指定的矩形范围,此时需要进行处理,以确保文本不会溢出控件的边界。此外,文本字符串可能包含空格或其他空白字符,需要进行处理,以确保文本正确地绘制到控件上。

正文

DrawString(String, Font, Brush, Single, Single, StringFormat)使用指定 Brush 的格式化特性,用指定的 FontStringFormat 对象在指定的位置绘制指定的文本字符串。
DrawString(String, Font, Brush, RectangleF, StringFormat)使用指定 Brush 的格式化特性,用指定的 FontStringFormat 对象在指定的矩形中绘制指定的文本字符串。
DrawString(String, Font, Brush, Single, Single)在指定位置并且用指定的 BrushFont 对象绘制指定的文本字符串。
DrawString(String, Font, Brush, RectangleF)在指定矩形并且用指定的 BrushFont 对象绘制指定的文本字符串。
DrawString(String, Font, Brush, PointF)在指定位置并且用指定的 BrushFont 对象绘制指定的文本字符串。
DrawString(String, Font, Brush, PointF, StringFormat)使用指定 Brush 的格式化特性,用指定的 FontStringFormat 对象在指定的位置绘制指定的文本字符串。