分类 C# 下的文章

C#中的yield 关键字

在 C# 代码中,尤其是基础库的 API 中,我们经常可以看到很多方法返回的是 IEnumerable<T> 类型,为什么要返回 IEnumerable<T> 而不是 IList<T>ICollection<T> 等类型呢?从字面上理解,IEnumerable<T> 表示该集合中的元素可以被遍历。要完全理解 IEnumerable<T> 类型对象如何被遍历,就要先理解 yield 关键字。

在 C# 中,大多数方法都是通过 return 语句把计算得到的结果返回给调用者,同时把控制权交回给调用者。比如下面这样一个获取斐波那契数列的方法:

阅读剩余部分

如何定义一个List<int,string>这样的List ?

网友Benny Ae咨询:

我在想为什么 C# 中没有内置带两列的 List 结构,如:

List<int,string> mylist= new List<int,string>();

网友newfurniturey回答:

虽然没有内置,但还是有其他解决方案的,大体上有四种。

1,使用 Tuple<int, string>

如果你用的是 C#7 之前的版本,而且还要坚持用 List 和 key-value 结构的话,完全可以使用 Tuple<int,string> ,参考如下代码:

阅读剩余部分

C#元组类型System.ValueTuple

元组功能在 C# 7.0 及更高版本中可用,它提供了简洁的语法,用于将多个数据元素分组成一个轻型数据结构。

元组功能需要 System.ValueTuple 类型和相关的泛型类型(例如 System.ValueTuple<T1,T2>),这些类型在 .NET Core 和 .NET Framework 4.7 及更高版本中可用。若要在面向 .NET Framework 4.6.2 或更早版本的项目中使用元组,请将 NuGet 包 System.ValueTuple 添加到项目。

(double, int) t1 = (4.5, 3);
Console.WriteLine($"Tuple with elements {t1.Item1} and {t1.Item2}.");
// Output:
// Tuple with elements 4.5 and 3.

(double Sum, int Count) t2 = (4.5, 3);
Console.WriteLine($"Sum of {t2.Count} elements is {t2.Sum}.");
// Output:
// Sum of 3 elements is 4.5.

若要定义元组类型,需要指定其所有数据成员的类型,或者,可以指定字段名称。虽然不能在元组类型中定义方法,但可以使用 .NET 提供的方法。

阅读剩余部分

C#在Windows中操作IIS设置FTP服务器

什么是FTP

FTP(File Transfer Protocol)是TCP/IP网络上两台计算机传送文件的协议,使得主机间可以共享文件.可以将 Internet 信息服务 (IIS) 配置为作为 FTP 服务器来运行。 这样,其他计算机便可以连接到服务器并将文件复制到服务器或者从服务器复制文件。 例如,如果您在自己的计算机上承载网站,并且希望允许远程用户连接到您的计算机并将他们的文件复制到服务器,则可以将 IIS 配置为充当 FTP 服务器。

主要实现方式

下面主要讲解一下,在Window的IIS中创建FTP的Site。

阅读剩余部分

C#使用阿里云.NET SDK发送短信

最近有个项目,短信服务使用的是阿里云的,想要使用阿里云平台的短信服务,首先要注册一个阿里云账号,由于发送短信消息需要用到短信签名、短信模板ID(已添加并通过审核)

  1. 注册阿里云账号(地址:https://www.aliyun.com/)
  2. 添加短信签名和短信模板
  3. 短信服务相关引用dll

添加引用

引用——>管理NuGet程序包——>搜索Aliyun.Acs.Core——>安装

阅读剩余部分