gpt4 book ai didi

C# 概念 : what the "LIST" keyword represents?

转载 作者:太空狗 更新时间:2023-10-30 00:04:08 25 4
gpt4 key购买 nike

我一直在学习 C# OOP 的速成类(class),很想知道“LIST”关键字在下面的代码中代表什么:

var actors = new List<Actor>();

最佳答案

List<T>是一个带有类型参数的类。这称为“泛型”,允许您在类中不透明地操作对象,这对于列表或队列等容器类特别有用。

容器只是存储东西,它并不真的需要知道它存储的是什么。我们可以在没有泛型的情况下像这样实现它:

class List
{
public List( ) { }
public void Add( object toAdd ) { /*add 'toAdd' to an object array*/ }
public void Remove( object toRemove ) { /*remove 'toRemove' from array*/ }
public object operator []( int index ) { /*index into storage array and return value*/ }
}

但是,我们没有类型安全。我可以像这样滥用那个系列:

List list = new List( );
list.Add( 1 );
list.Add( "uh oh" );
list.Add( 2 );
int i = (int)list[1]; // boom goes the dynamite

在 C# 中使用泛型允许我们以类型安全的方式使用这些类型的容器类。

class List<T>
{
// 'T' is our type. We don't need to know what 'T' is,
// we just need to know that it is a type.

public void Add( T toAdd ) { /*same as above*/ }
public void Remove( T toAdd ) { /*same as above*/ }
public T operator []( int index ) { /*same as above*/ }
}

现在,如果我们尝试添加不属于我们的东西,我们会得到一个编译 时间错误,这比在我们的程序执行时发生的错误要好得多。

List<int> list = new List<int>( );
list.Add( 1 ); // fine
list.Add( "not this time" ); // doesn't compile, you know there is a problem

希望对您有所帮助。抱歉,如果我在那里犯了任何语法错误,我的 C# 已经生锈了;)

关于C# 概念 : what the "LIST" keyword represents?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2182510/

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