方法返回默认值



为什么允许我在方法声明中返回null,而方法声明也可以返回值类型
我认为IList<T>对它们的实现类型没有限制
此外,如果一个方法返回IList<T>返回默认值?

public IList<int> SomeMethod()
{
// Allowed
return new MyStructList();
// Allowed
return null;
}
public struct MyStructList : IList<int>
{
...
}

您的SomeMethod方法返回一个IList<int>IList<T>是一个接口,它是一个引用类型。null是引用类型的允许值。

当你做return new MyStructList()时,这基本上是的缩写

IList<int> ret = new MyStructList();
return ret;

IList<int> ret = new MyStructList();MyStructList():为其分配一个框,将MyStructList复制到该框中,并创建对该框的引用并将其分配给ret。这是必要的,因为ret的类型是IList<int>,而IList<T>是引用类型,所以ret只能包含引用。

相关内容

  • 没有找到相关文章