分类 C# 下的文章

在C#中使用插值字符串

字符串插值是一种将 表达式 插入到字符串字面量中的一种技术,又称为变量替换,变量插值,变量展开 等等,它是一种用相应值替换字符串中的一个或者更多个占位符的处理过程。

字符串插值被很多编程语言所采用,比如说:Python,Perl,PHP,Ruby,Java,Scala 等等, C# 是在第六个版本中引入的,这篇文章我们将会讨论如何在 C# 中使用 字符串插值。

阅读剩余部分

C#按质量等级压缩图片

有时候我们对一些较大的图片进行保存的时候,需要进一步压缩以缩小其占用空间,达到节约内存的目的,亦或者前后端传输的时候,压缩空间以增快传输效率。

所以本篇文章在下面分三个质量等级对图片进行了压缩,在效果图中可以看到明显的大小变化以及图片质量的变化。多的就不写了,代码比较简单,大家自行运行测试吧。

阅读剩余部分

使用C#实现简单模式gRPC

服务端:

1,通过vs新建一个gRPC服务,会内置一proto文件;内容如下,可以理解成是一个模板,通过这个模板 可以生成对应的类文件。

阅读剩余部分

C#创建自定义特性

特性(Attribute)是用于在运行时传递程序中各种元素(比如类、方法、结构、枚举、组件等)的行为信息的声明性标签。您可以通过使用特性向程序添加声明性信息。一个声明性标签是通过放置在它所应用的元素前面的方括号([ ])来描述的。要设计你自己的自定义特性,无需掌握许多新的概念。 如果你熟悉面向对象的编程,并且知道如何设计类,那么你已经具备大部分所需知识。 自定义特性本质上是直接或间接派生自 System.Attribute的传统类。 与传统类一样,自定义特性包含用于存储和检索数据的方法。

阅读剩余部分

C# Action<T>和 Func<T>委托

除了为每个参数和返回类型定义一个新委托类型之外,还可以使用 Action<T> 和 Func<T>委托。泛型 Action<T>委托表示引用一个 void 返回类型的方法。这个委托类存在不同的变体,可以传递至多 16 种不同的参数类型。没有泛型参数的 Action 类可调用没有参数的方法。Action<in T>调用带一个参数的方法,Action<in T1,in T2>调用带两个参数的方法,Action<in T1,in T2,in T3,in T4,in T5,in T6,in T7,in T8>调用带 8 个参数的方法。

阅读剩余部分