gpt4 book ai didi

c# - 如何为对象/类设置默认返回的类的属性?

转载 作者:太空宇宙 更新时间:2023-11-03 23:22:24 24 4
gpt4 key购买 nike

我正在尝试实现我自己的列表类。仅用于培训,以更好地了解事物的运作方式。

我有这样的东西:

public class TestClass {
public int[] List;
// Add(), ...
}

我希望能够像这样检索数组(这是 TestClass 的属性):

var testClass = new TestClass();
int[] list = testClass; // without the ".List" list would point to the array

不是这样的:

var testClass = new TestClass();
int[] list = testClass.List;

与使用 C# 内置泛型列表类的方式相同。

我怎样才能做到这一点(如果这可能的话)?

更新

我将“列表”更改为 int[] ,我希望这会有所帮助。

我知道我可以做类似的事情:

int[] list = new int[10];

但我需要 TestClass因为我需要一些关于数组的其他(扩展)属性和更多自定义方法。

更新 2

也许这会更清楚一些。

我试图找出通用 List<T> 是如何产生的类在这种情况下有效:

var list = new List<T>();
foreach(var oneElement in list)

在我的例子中,我必须这样做:

var list = new TestClass();
foreach(var oneElement in list.List)

我希望能够像 .NET 一样检索我的数组或 C# List<T>类检索它的“底层数组”。

最佳答案

如果var list允许具有以下类型之一 IEnumerable<T> , ICollection<T>IList<T> , 那么你只需要实现接口(interface)之一 IEnumerable<T> , ICollection<T>IList<T> :

public class TestClass : IList<SomeTypeOrGenericT>
{
public SomeTypeOrGenericT[] List;
// ...

// members of IList<SomeTypeOrGenericT>
}

关于c# - 如何为对象/类设置默认返回的类的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34956024/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com