C#如何创建自己的数据结构方法

C#如何创建自己的数据结构方法,c#,C#,我一直在尝试用谷歌搜索一个有趣的事实,但无法抓住术语来完全理解这个概念。例如,我创建了自己的容器,其中包含一系列汽车。对于这个特定的数组,我想实现“Place”方法,它以特定的顺序插入给定的汽车(Place方法有逻辑)。我不明白它是如何完成任务的。代码如下: public static void Main(string[] args) { Car[] result = new Car[entries]; result.Place(poppedValue);

我一直在尝试用谷歌搜索一个有趣的事实,但无法抓住术语来完全理解这个概念。例如,我创建了自己的容器,其中包含一系列汽车。对于这个特定的数组,我想实现“Place”方法,它以特定的顺序插入给定的汽车(Place方法有逻辑)。我不明白它是如何完成任务的。代码如下:

   public static void Main(string[] args)
   {
      Car[] result = new Car[entries];
      result.Place(poppedValue);
   }

我不明白的是,在“Place”方法中,第一个参数是“this Car[]array”,当调用方法“Place”时,你不给那个参数。C#通过使用result.Place来理解它。。。太令人困惑了。也许有人能说出引擎盖下发生了什么以及C#的“功能”是如何被调用的。我想多读一点。谢谢。

扩展方法是一种语法糖,允许将功能添加到现有类中,即使是密封的,也不需要继承它们

这也被称为a

在C#中,我们使用关键字
this
作为第一个参数,以指示静态方法(必须位于通常称为Helper类的静态类中)应用于指定类型

例如:

public static class CarArrayHelper
{
    public static void Place(this Car[] array, Car car)
    {
    }
}
表示我们可以在
汽车
的所有数组上应用
放置
方法

因此,我们可以写:

var myArray = new Car[10];

myArray.Place(new car());
这与:

CarArrayHelper.Place(myArray, new car());
Car
类没有实现
Place
,因此我们在不更改
Car
类或创建子类的情况下添加了该功能

以下是一些教程:


.

扩展方法是一种语法糖,允许将功能添加到现有类中,即使是密封的,也不需要继承它们

这也被称为a

在C#中,我们使用关键字
this
作为第一个参数,以指示静态方法(必须位于通常称为Helper类的静态类中)应用于指定类型

例如:

public static class CarArrayHelper
{
    public static void Place(this Car[] array, Car car)
    {
    }
}
表示我们可以在
汽车
的所有数组上应用
放置
方法

因此,我们可以写:

var myArray = new Car[10];

myArray.Place(new car());
这与:

CarArrayHelper.Place(myArray, new car());
Car
类没有实现
Place
,因此我们在不更改
Car
类或创建子类的情况下添加了该功能

以下是一些教程:


.

扩展方法在引擎盖下这是否回答了您的问题?扩展方法是秘密的这能回答你的问题吗?