C#如何创建自己的数据结构方法
我一直在尝试用谷歌搜索一个有趣的事实,但无法抓住术语来完全理解这个概念。例如,我创建了自己的容器,其中包含一系列汽车。对于这个特定的数组,我想实现“Place”方法,它以特定的顺序插入给定的汽车(Place方法有逻辑)。我不明白它是如何完成任务的。代码如下:C#如何创建自己的数据结构方法,c#,C#,我一直在尝试用谷歌搜索一个有趣的事实,但无法抓住术语来完全理解这个概念。例如,我创建了自己的容器,其中包含一系列汽车。对于这个特定的数组,我想实现“Place”方法,它以特定的顺序插入给定的汽车(Place方法有逻辑)。我不明白它是如何完成任务的。代码如下: public static void Main(string[] args) { Car[] result = new Car[entries]; result.Place(poppedValue);
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
类或创建子类的情况下添加了该功能
以下是一些教程:
.扩展方法在引擎盖下这是否回答了您的问题?扩展方法是秘密的这能回答你的问题吗?