gpt4 book ai didi

c# - 在 C# 中返回动态有什么用

转载 作者:行者123 更新时间:2023-11-30 12:10:57 33 4
gpt4 key购买 nike

...与直接返回一个对象相比。当您将对象分配到动态声明的变量时,魔法就开始了,那么返回动态有什么不同呢?

那么有什么区别:

static object CreateMagicList()
{
return new List<string>();
}

static dynamic CreateMagicList()
{
return new List<string>();
}

它们的工作原理似乎完全相同,例如:

dynamic list = CreateMagicList();
list.Add( "lolcat" );

请注意,这不是一个实际问题。我对为什么部分感兴趣:)

最佳答案

我最好的猜测是你可以返回 dynamic 这样你就可以这样做:

private static dynamic Get() {
return new {X=5};
}
public static void Main() {
var v = Get();
Console.WriteLine(v.X);
}

如果您只能将 Get 声明为 object Get(),那么您的调用者将被迫将 var 替换为 dynamic :否则,代码将无法编译。

同样适用于没有 var 的用例:

public static void Main() {
Console.WriteLine(Get().X);
}

如果没有 dynamic 返回类型,您将不得不进行中间赋值,或者使用转换为 dynamic

关于c# - 在 C# 中返回动态有什么用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16745384/

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